我有一个类似生成器的无限IEnumerable源,我想从中获取n个不同的项目。有没有一种简单的LINQ风格的方法(仍然很快速)?

如果没有简单的方法,我提出的算法是否是个好主意?:


拿n件
呼叫区别
通话次数
如果计数

取n-计数项
Concat这些和goto 2

结束

最佳答案

只需在Distinct之前调用Take即可获取n个不同的元素:

var nDistincItems = source
    .Distinct()
    .Take(n);

关于c# - 轻松的LINQ方式从(无限)IEnumerable中获取n个不同的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52248059/

10-13 06:25