Come scorrere una raccolta che supporta IEnumerable?
Risposte:
Un regolare per ciascuno farà:
foreach (var item in collection)
{
// do your stuff
}
Insieme ai metodi già suggeriti per l'utilizzo di un foreach
ciclo, ho pensato di menzionare anche che qualsiasi oggetto che implementa IEnumerable
fornisce anche IEnumerator
un'interfaccia tramite il GetEnumerator
metodo. Sebbene questo metodo di solito non sia necessario, può essere utilizzato per l'iterazione manuale sulle raccolte ed è particolarmente utile quando si scrivono i propri metodi di estensione per le raccolte.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Un ottimo esempio è quando si desidera iterare su due sequenze contemporaneamente , cosa che non è possibile con un foreach
ciclo.
o anche un metodo vecchio stile molto classico
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
}
forse ti piacerebbe anche questo metodo :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Forse hai dimenticato l' attesa prima di restituire la tua collezione