Je me demandais, exactement quand puis-je utiliser la boucle foreach? Dois-je implémenter IEnumerable?IEnumerable est-il requis pour utiliser une boucle foreach?
Répondre
Vous pouvez foreach si un objet qui implémente IEnumerable
ou IEnumberable<T>
Il n'y a pas besoin d'implémenter l'interface IEnumerable d'utiliser l'instruction foreach. Voici une citation du MSDN (http://msdn.microsoft.com/en-us/library/9yb8xew9.aspx):
En C#, il est pas absolument nécessaire pour une classe de collection d'hériter de IEnumerable et IEnumerator pour être compatible avec foreach. Tant que comme la classe a le requis GetEnumerator, MoveNext, Reset, et Les membres actuels, il travaillera avec foreach. Omettre les interfaces a l'avantage de vous permettre de définir le type de retour de courant à être plus spécifique que l'objet, ce qui assure la sécurité de type.
Comme celui-ci car il indique correctement 'IEnumerable' n'est pas requis. Cela rend certainement la vie plus facile, cependant. –
C'est vraiment intéressant, et je ne le savais pas. Mais je suppose que c'était principalement pour supporter la sécurité de type dans .NET 1.0. Je dirais que la meilleure façon d'assurer la sécurité des types de nos jours est d'utiliser la version générique de IEnumerable. –
+1 Apprendre quelque chose de nouveau chaque jour. – BoltClock
explication complète: http://msdn.microsoft.com/en-us/library/aa664754%28VS.71%29.aspx
Demandez-vous - avez-vous vraiment besoin d'un compteur de boucle
La règle de base que j'utilise est de déterminer si je me déplace des données entre deux conteneurs indexés, où je fais vraiment besoin d'une valeur d'index pour adresser la destination, ou plus généralement, «ai-je besoin d'un compte d'index pour chaque élément que je traite dans la boucle»? Dans ces cas, j'utilise une boucle for, dans presque tous les autres cas (où foreach peut gérer le conteneur, ce qui, comme indiqué ci-dessus, concerne à peu près tous les conteneurs), la raison est plutôt simple, Ensuite, il faut prendre la peine de maintenir manuellement un compteur de boucles.
- 1. Utilisation de IEnumerable sans boucle foreach
- 2. IEnumerable, IEnumerator vs foreach, quand utiliser
- 3. perl + comment utiliser Chomp en boucle foreach
- 4. simple boucle foreach
- 5. boucle Foreach par ObservableCollection
- 6. Boucle JQuery ForEach?
- 7. html en boucle foreach
- 8. foreach Boucle dans LaTeX
- 9. boucle foreach pour itérer deux listes
- 10. Tableau imbriqué avec une boucle foreach?
- 11. Aide pour la boucle foreach PHP
- 12. aide nécessaire d'améliorer une boucle foreach
- 13. Impression d'un WebBrowser dans une boucle foreach
- 14. Asp.net: poignée null dans une boucle foreach
- 15. Ecrire une boucle foreach pour tableau de SimpleXMLElements
- 16. boucle foreach sur tableau multidimensionnel
- 17. Comment puis-je utiliser une boucle foreach pour supprimer tout le contrôle d'un panneau?
- 18. Pourquoi ne pas utiliser ma boucle conteneur foreach?
- 19. Est-ce qu'une boucle foreach copie chaque élément d'un IEnumerable pendant l'itération?
- 20. Agrégation dans la boucle foreach
- 21. DeleteObject() dans la boucle foreach
- 22. Alors que boucle dans foreach boucle ne boucle pas correctement
- 23. boucle Foreach avec plusieurs tableaux
- 24. STATA boucle foreach comportement étrange
- 25. aider avec php FOREACH boucle
- 26. et question boucle mixte foreach
- 27. boucle Foreach et les tâches
- 28. Impossible de placer une tâche SQL dans une boucle Foreach
- 29. boucle PHP foreach par tableau multidimensionnel
- 30. Utiliser le retour pour quitter une boucle?
[Première réponse] (http://msdn.microsoft.com/fr-fr/library/ttw7t8t6%28VS.80%29.aspx) sur Google. – pascal
http://msdn.microsoft.com/en-us/library/9yb8xew9(VS.80).aspx – Dave
Vous pouvez les utiliser les mardis et jeudis et pendant le cinquième week-end d'un mois civil. –