Il y a déjà une instruction foreach inclus dans la langue qui fait le travail la plupart du temps.
J'avais hate de voir les suivants:
list.ForEach( item =>
{
item.DoSomething();
} );
Au lieu de:
foreach(Item item in list)
{
item.DoSomething();
}
Ce dernier est plus clair et plus facile à lire dans la plupart des situation, bien que peut-être un peu plus long à taper.
Cependant, je dois admettre que j'ai changé ma position sur cette question; un ForEach() la méthode d'extension serait en effet utile dans certaines situations.
Voici les principales différences entre la déclaration et la méthode:
- La vérification du Type: foreach est fait au moment de l'exécution, ForEach() est au moment de la compilation (Plus Grand!)
- La syntaxe pour appeler un délégué est en effet beaucoup plus simple: les objets.ForEach(DoSomething);
- ForEach() pourrait être enchaîné: bien que mal/l'utilité d'une telle fonctionnalité est ouvert à la discussion.
Ceux sont tous des grands points faite par beaucoup de gens ici, et je peux voir pourquoi les gens sont absents de la fonction. Je n'aurais pas l'esprit de Microsoft à l'ajout d'un standard ForEach méthode dans le cadre de l'itération.