J’ai une liste :
Je veux appliquer une transformation à des éléments de ma liste. Je peux faire cela de deux façons :
Quelle est la différence entre ces deux façons ?
J’ai une liste :
Je veux appliquer une transformation à des éléments de ma liste. Je peux faire cela de deux façons :
Quelle est la différence entre ces deux façons ?
Select est une méthode d’extension LINQ et fonctionne sur tous les objets de de IEnumerable considérant que ConvertAll est mis en œuvre que par l’énumération . La méthode ConvertAll existe depuis .NET 2.0, considérant que l’introduction de LINQ avec 3.5.
Vous devriez favoriser la sélection sur ConvertAll tel qu’il fonctionne pour tout type de liste, mais ils le font essentiellement le même.
ConvertAll
n'est pas une extension, c'est une méthode dans la classe de liste. Vous n'avez pas à appeler ToList
sur le résultat car c'est déjà une liste:
List<int> list2 = list.ConvertAll(x => 2 * x);
Donc, la différence est que l' ConvertAll
méthode ne peut être utilisé que sur une liste et retourne une liste. L' Select
méthode peut être utilisée sur n'importe quel ienumerable collection, et il retourne une IEnumerable<T>
.
Aussi, ils ne le traitement différemment, de sorte qu'ils ont tous leurs forces dans des situations différentes. L' ConvertAll
méthode s'exécute par le biais de la liste et crée une nouvelle liste, tandis que l' Select
méthode utilise paresseux exécution et traite uniquement les éléments que vous le souhaitez. Si vous n'avez pas besoin de tout l'élément, l' Select
méthode est plus efficace. D'autre part, une fois ConvertAll
a retourné la liste, vous n'avez pas besoin de garder la liste d'origine.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.