c# - 是否可以从第一个元素以外的元素开始迭代使用 foreach?

标签 c# iterator ienumerable

我正在考虑为我的自定义集合(一棵树)实现 IEnumerable,这样我就可以使用 foreach 来遍历我的树。但是据我所知,foreach 总是从集合的第一个元素开始。我想选择 foreach 从哪个元素开始。是否有可能以某种方式更改 foreach 开始的元素?

最佳答案

是的。执行以下操作:

Collection<string> myCollection = new Collection<string>;

foreach (string curString in myCollection.Skip(3))
    //Dostuff

Skip 是一个 IEnumerable 函数,它可以跳过您指定的从当前索引开始的次数。另一方面,如果您想使用前三个,您可以使用.Take:

foreach (string curString in myCollection.Take(3))

这些甚至可以配对在一起,所以如果您只想要 4-6 件元素,您可以这样做:

foreach (string curString in myCollection.Skip(3).Take(3))

关于c# - 是否可以从第一个元素以外的元素开始迭代使用 foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429728/

相关文章:

C# 在末尾将数组增加一个元素

c# - 以编程方式从 Generic.xaml 中查找资源

c++ - 在 2 个 for 循环中删除 vector 元素时 vector 迭代器可递增

c# - "yield return"概念的名称是什么? IEnumerable、迭代器、生成器?

c# - 在完全托管的 asp.net c# web 应用程序中是否可能发生缓冲区溢出/溢出

c# - 如何在 Xamarin.Forms.Map 中获取当前位置或移动到当前位置

rust - 使用迭代器作为来自一个向量的函数的参数多次

c++ - vector 的结束迭代器内容

c# - C# 中是否有与 IEnumerable<T> 等效的标准 C++?

c# - 我可以有一个方法返回 IEnumerator<T> 并在 foreach 循环中使用它吗?