c# - 来自给定有限列表的linq无限列表

标签 c# .net linq lazy-evaluation infinite-sequence

给定一个有限的元素列表,我如何创建一个(延迟求值,感谢 LINQ!)不断迭代我的初始列表的无限列表?

如果初始列表是 {1, 2, 3},我希望新列表返回 {1, 2, 3, 1, 2, 3, 1, .. .

最佳答案

yield return 是一个相当方便的运算符,尽管它实际上并不特别需要 LINQ。

IEnumerable<int> GetInfiniteSeries(IEnumerable<int> items) {
    while (true) {
       foreach (var item in items) { 
           yield return item;
       }
    }
}

关于c# - 来自给定有限列表的linq无限列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575682/

相关文章:

c# - 如何将具有特殊顺序的特定文本框保存到文本文件中?

c# - 初始化后无法使用 MySqlConnection。为什么?

c# - 使用 LINQ 在字节数组中搜索以特定字节开始/结束的所有子数组

c# - 返回一个 IQueryable<dynamic> 以在父方法中进行过滤

.net - SimpleWorkerRequest 如何将 MIME 类型与扩展关联?

c# - 从 XDocument 中选择 XElement

c# - 我们可以在 C# 中使用来自另一个 winform 的一些 winform 面板吗?

c# - 如何在 Eclipse for Java 中为 Web 服务创建 "proxy"类?

c# - GTK# 使用绘图区

C#,查找控件