Как перебрать коллекцию, которая поддерживает IEnumerable?



Как перебрать коллекцию, которая поддерживает IEnumerable?

599   4  

4 ответов:

обычный для каждого будет делать:

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

наряду с уже предложенными методами использования foreach цикл, я думал, что также упомяну, что любой объект, который реализует IEnumerable предоставляет IEnumerator интерфейс через GetEnumerator метод. Хотя этот метод обычно не требуется, он может использоваться для ручного перебора коллекций и особенно полезен при написании собственных методов расширения для коллекций.

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)
{

}

Comments

    Ничего не найдено.