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 foreach
loop, pensei também em mencionar que qualquer objeto que implementa IEnumerable
também fornece uma IEnumerator
interface por meio do GetEnumerator
mé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 foreach
loop.
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