Les génériques - appel d'une méthode sur chaque objet dans une Liste<T>
Est-il possible d'appeler une méthode sur chaque objet dans une Liste - p. ex.
Au lieu de
List<MyClass> items = setup();
foreach (MyClass item in items)
item.SomeMethod();
Vous pourriez faire quelque chose comme
foreach(items).SomeMethod();
Rien construit dans, les méthodes d'extension, ou suis-je juste trop paresseux?
Vous devez vous connecter pour publier un commentaire.
Oui, sur
List<T>
, il y a:La bizarrerie, c'est que c'est disponible seulement sur
List<T>
, pasIList<T>
ouIEnumerable<T>
Pour résoudre ce problème, je tiens à ajouter l'extension suivante de la méthode:
Ensuite, vous pouvez l'utiliser sur n'importe QUOI qui implémente
IEnumerable<T>
... et pas seulementList<T>
Les listes ont une ForEach méthode. Vous pouvez également créer un IEnumerable méthode d'extension, mais cela va à l'encontre de l'esprit de Linq.
Si vous avez besoin de changer une propriété sur MyClass à l'aide de MyMethod, utilisez le 'Pipe' méthode de Jon Skeet est morelinq bibliothèque
Les possibilités sont infinies! 🙂