Como fazer um loop em uma coleção que oferece suporte a IEnumerable?
c#
for-loop
foreach
ienumerable
mrblah
fonte
fonte
Junto com os métodos já sugeridos de usar um
foreach
loop, pensei também em mencionar que qualquer objeto que implementaIEnumerable
também fornece umaIEnumerator
interface por meio doGetEnumerator
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.fonte
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 :-)
fonte
foreach (var element in instanceOfAClassThatImplelemntIEnumerable) { }
fonte
Talvez você tenha esquecido a espera antes de devolver sua coleção
fonte