Comment parcourir une collection qui prend en charge IEnumerable?
Réponses:
Un habitué pour chacun fera:
foreach (var item in collection)
{
// do your stuff
}
Outre les méthodes déjà suggérées pour l'utilisation d'une foreach
boucle, j'ai pensé mentionner également que tout objet implémentant IEnumerable
fournit également une IEnumerator
interface via la GetEnumerator
méthode. Bien que cette méthode ne soit généralement pas nécessaire, elle peut être utilisée pour itérer manuellement sur des collections et est particulièrement utile lors de l'écriture de vos propres méthodes d'extension pour les collections.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Un excellent exemple est lorsque vous souhaitez itérer sur deux séquences simultanément , ce qui n'est pas possible avec une foreach
boucle.
ou même une méthode à l'ancienne très classique
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
}
peut-être aimeriez-vous aussi cette méthode :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Peut-être avez-vous oublié l' attente avant de retourner votre collection