如何循环访问支持IEnumerable的集合?

如何循环访问支持IEnumerable的集合?

每个经常会做:

foreach (var item in collection) { // do your stuff } 

除了已经提到的使用foreach循环的方法外,我还想提到任何实现了IEnumerable对象也都通过GetEnumerator方法提供了一个IEnumerator接口。 虽然这个方法通常不是必须的,但是这可以用于手动迭代集合,而且在为集合编写自己的扩展方法时特别有用。

 IEnumerable<T> mySequence; using (var sequenceEnum = mySequence.GetEnumerator()) { while (sequenceEnum.MoveNext()) { // Do something with sequenceEnum.Current. } } 

一个主要的例子就是当你想同时迭代两个序列时foreach循环是不可能的。

甚至是一个非常古典的时尚方法

 for(int i = 0; i < collection.Count(); i++) { string str1 = collection.ElementAt(i); // do your stuff } 

也许你会喜欢这种方法:-)

 foreach (var element in instanceOfAClassThatImplelemntIEnumerable) { } 
Interesting Posts