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 foreachboucle, j'ai pensé mentionner également que tout objet implémentant IEnumerablefournit également une IEnumeratorinterface via la GetEnumeratormé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 foreachboucle.
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