代码之家  ›  专栏  ›  技术社区  ›  D.R.

从(无限)IEnumerable中获取n个不同项的简单LINQ方法

  •  2
  • D.R.  · 技术社区  · 7 年前

    我有一个像无限的发电机 IEnumerable 我想从中获取n个不同项的源。有没有一种简单的LINQ风格的方法可以做到这一点(仍然很快)?

    1. 取n个项目
    2. 调用Distinct
    3. 通话次数
      1. 拿n个物品
      2. 把它们连起来,转到2
    4. 终点
    1 回复  |  直到 7 年前
        1
  •  6
  •   arekzyla    7 年前

    打个电话就行了 Distinct Take 取n个不同的元素:

    var nDistincItems = source
        .Distinct()
        .Take(n);
    
    推荐文章