Как пройти через коллекцию, поддерживающую IEnumerable?
c#
for-loop
foreach
ienumerable
мрбла
источник
источник
Наряду с уже предложенными методами использования
foreach
цикла, я подумал, что я также упомянул, что любой объект, который реализует,IEnumerable
также предоставляетIEnumerator
интерфейс черезGetEnumerator
метод. Хотя в этом методе обычно нет необходимости, его можно использовать для ручного перебора коллекций и особенно полезно при написании собственных методов расширения для коллекций.IEnumerable<T> mySequence; using (var sequenceEnum = mySequence.GetEnumerator()) { while (sequenceEnum.MoveNext()) { // Do something with sequenceEnum.Current. } }
Ярким примером является случай, когда вы хотите перебрать две последовательности одновременно , что невозможно с
foreach
циклом.источник
или даже очень классический старомодный метод
IEnumerable<string> collection = new List<string>() { "a", "b", "c" }; for(int i = 0; i < collection.Count(); i++) { string str1 = collection.ElementAt(i); // do your stuff }
возможно, вам тоже понравится этот метод :-)
источник
foreach (var element in instanceOfAClassThatImplelemntIEnumerable) { }
источник
Возможно, вы забыли об ожидании перед возвратом своей коллекции
источник