Maison > développement back-end > C++ > Comment puis-je créer efficacement une liste distincte en utilisant les expressions Lambda en C #?

Comment puis-je créer efficacement une liste distincte en utilisant les expressions Lambda en C #?

Barbara Streisand
Libérer: 2025-01-25 22:51:10
original
223 Les gens l'ont consulté

How Can I Efficiently Create a Distinct List Using Lambda Expressions in C#?

Personnalisez la méthode distincte () avec l'expression de lambda

Lors du traitement de l'objet accessible, il est souvent nécessaire de distinguer la valeur unique. Bien que l'espace de dénomination System.Linq fournit une méthode d'extension distincte (), il manque de charge qui accepte les expressions lambda pour spécifier l'objet égal.

difficulté

En raison du manque de charges lourdes basées sur les expressions de lambda, les programmeurs ne peuvent utiliser que l'interface IeQulityComparer, qui doit implémenter les méthodes Equals () et GethashCode (). Cette méthode peut être lourde et volumineuse.

La méthode de changement basée sur l'expression de lambda

Bien qu'il n'y ait pas de méthode d'expansion existante correspondant à la syntaxe Lambda requise, une méthode créative de changement peut obtenir des effets similaires. En utilisant GroupBy () et Select (), vous pouvez convertir, vous pouvez énumérer l'objet:

En regroupant l'élément en appuyant sur la touche spécifiée et en sélectionnant le premier élément de chaque groupe, vous pouvez créer efficacement une liste unique de tableaux basés sur l'expression de lambda fournie dans GroupBy ().

La nature égale de l'expression de lambda
<code class="language-csharp">IEnumerable<customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());</code>
Copier après la connexion

Il convient de noter que des comparateurs égaux basés sur les expressions de lambda peuvent provoquer des comportements inattendus (comme la chaîne). Afin d'effectuer de manière fiable des opérations uniques, nous devons assurer l'implémentation précise et cohérente de GethashCode ().

Plus d'informations

L'architecte en chef .NET, Anders Hejlsberg, a discuté des limites de la distribution de la distribution () basée sur l'expression de Lambda.

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