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