Maison > développement back-end > C++ > Ienumerable vs liste en C #: Quand devriez-vous choisir lequel?

Ienumerable vs liste en C #: Quand devriez-vous choisir lequel?

Mary-Kate Olsen
Libérer: 2025-01-29 04:46:14
original
955 Les gens l'ont consulté

IEnumerable vs. List in C#: When Should You Choose Which?

Les différences et les effets de performance de l'iénumation et la liste dans le C #

Lors du traitement de la collection en C #, la différence entre

et

est très importante. IEnumerable représente un énumérateur, qui fournit une méthode pour traverser la collection; List est l'implémentation spécifique de l'interface IEnumerable. List IEnumerable Considérez les deux requête LINQ suivantes:

Le principe de travail de l'énumérateur
<code class="language-csharp">List<animal> sel1 = (from animal in Animals 
                    join race in Species
                    on animal.SpeciesKey equals race.SpeciesKey
                    select animal).Distinct().ToList();

IEnumerable<animal> sel2 = (from animal in Animals 
                           join race in Species
                           on animal.SpeciesKey equals race.SpeciesKey
                           select animal).Distinct();</code>
Copier après la connexion

Lors de l'utilisation de , le débogage montrera des membres tels que "intérieur" et "extérieur", ce qui peut être déroutant. Les membres "intérieurs" comprennent des objets de l'ensemble de connexion (espèces) et les membres "externes" incluent des objets de l'ensemble initial (animal). Requête en utilisant ces membres pour effectuer l'opération de connexion.

Considérations de performance

IEnumerable

En termes de performances,

est généralement plus favorisé car il est retardé jusqu'à la requête d'énumération. En utilisant pour forcer les résultats immédiatement calculés et spécifiques, cela peut limiter les opportunités d'optimisation. Mais si vous devez effectuer une requête plusieurs fois, il sera converti en

plus efficace, car il peut empêcher le calcul de la requête à chaque fois.

IEnumerable Utiliser la scène ToList()

applicable à la situation suivante: List

Je souhaite retarder l'exécution jusqu'à plus tard. souhaite optimiser les performances de la requête.

Plusieurs itérations peuvent être nécessaires. IEnumerable

    applicable à la situation suivante:
  • Vous devez empêcher l'exécution des requêtes à plusieurs reprises.
  • Vous souhaitez utiliser des objets de collecte spécifiques.
Vous devez accéder à membres indisponibles.

List

Conclusion
  • La sélection entre et
  • dépend des exigences spécifiques de l'application. Pour un retard d'exécution et d'optimisation des performances, veuillez utiliser
  • ; et lorsque vous devez calculer ou spécifique la fonction de collecte, utilisez
  • . IEnumerable

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