Como fazer um loop em uma coleção que oferece suporte a IEnumerable?
Respostas:
Um regular para cada fará:
foreach (var item in collection)
{
// do your stuff
}
Junto com os métodos já sugeridos de usar um foreachloop, pensei também em mencionar que qualquer objeto que implementa IEnumerabletambém fornece uma IEnumeratorinterface por meio do GetEnumeratormétodo. Embora esse método geralmente não seja necessário, ele pode ser usado para iterar manualmente sobre coleções e é particularmente útil ao escrever seus próprios métodos de extensão para coleções.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Um bom exemplo é quando você deseja iterar em duas sequências simultaneamente , o que não é possível com um foreachloop.
ou mesmo um método muito clássico à moda antiga
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
}
talvez você também queira este método :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Talvez você tenha esquecido a espera antes de devolver sua coleção