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

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

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

  1. 取 n 项

  2. 呼叫不同

  3. 通话次数

  4. 如果计数 < n

    1. 取 n - 计数项目

    2. 连接那些并转到 2

  5. 结尾


潇湘沐
浏览 191回答 1
1回答

牧羊人nacy

只需调用DistinctbeforeTake获取 n 个不同的元素:var&nbsp;nDistincItems&nbsp;=&nbsp;source &nbsp;&nbsp;&nbsp;&nbsp;.Distinct() &nbsp;&nbsp;&nbsp;&nbsp;.Take(n);
打开App,查看更多内容
随时随地看视频慕课网APP