Maison > développement back-end > C++ > Pourquoi « IEnumerable » de .NET n'a-t-il pas de méthode d'extension « ForEach » ?

Pourquoi « IEnumerable » de .NET n'a-t-il pas de méthode d'extension « ForEach » ?

Linda Hamilton
Libérer: 2025-01-22 02:47:12
original
205 Les gens l'ont consulté

Why Doesn't .NET's `IEnumerable` Have a `ForEach` Extension Method?

.NET IEnumerable : la méthode d'extension ForEach manquante

Contrairement à de nombreux autres langages, le .NET Framework omet étonnamment une méthode d'extension ForEach pour IEnumerable. Cette absence suscite souvent des questions, les soucis de performances étant fréquemment cités comme raison potentielle.

Pourquoi cette omission ?

L'instruction foreach intégrée de C# gère déjà efficacement la plupart des besoins d'itération. L'ajout d'une méthode d'extension ForEach serait redondant.

De plus, la lisibilité de l'instruction foreach dépasse généralement celle d'un appel de méthode ForEach() :

<code class="language-csharp">// Using ForEach() extension method
list.ForEach(item => item.DoSomething());

// Using foreach statement
foreach (var item in list)
{
    item.DoSomething();
}</code>
Copier après la connexion

Bien que foreach nécessite plus de frappes, sa clarté l'emporte souvent.

Reconsidérer le besoin

Des conversations récentes ont mis en évidence les avantages potentiels d'une ForEach() méthode d'extension :

  • Sécurité du type au moment de la compilation : ForEach() fournit une vérification du type au moment de la compilation, contrairement aux vérifications à l'exécution de foreach.
  • Invocation concise des délégués : L'appel des délégués est plus compact avec ForEach(), illustré par objects.ForEach(DoSomething).
  • Potentiel de chaînage de méthodes : Bien que la valeur pratique et les inconvénients potentiels nécessitent un examen attentif, ForEach() permet le chaînage de méthodes.

Ces avantages suggèrent qu'une méthode ForEach() standardisée pourrait être un ajout précieux aux futures versions de .NET.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal