Як прокрутити колекцію, яка підтримує IEnumerable?
Відповіді:
Звичайний для кожного буде робити:
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
циклу.
або навіть дуже класичний метод старої моди
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)
{
}
Можливо, ви забули очікування перед поверненням своєї колекції