Maison > développement back-end > C++ > Comment puis-je utiliser des expressions Lambda pour obtenir des valeurs distinctes dans .NET ?

Comment puis-je utiliser des expressions Lambda pour obtenir des valeurs distinctes dans .NET ?

Linda Hamilton
Libérer: 2025-01-25 23:06:10
original
776 Les gens l'ont consulté

How Can I Use Lambda Expressions to Get Distinct Values in .NET?

Identifier efficacement les valeurs uniques dans .NET avec les expressions lambda

Extraire des éléments uniques d'une collection est un besoin de programmation fréquente. La bibliothèque LINQ de .NET offre la méthode Distinct() pour cela, mais ses limites deviennent apparentes lorsqu'ils traitent des objets personnalisés nécessitant des comparaisons d'égalité spécifiques. Tandis que Distinct() accepte un IEqualityComparer, l'utilisation directement des expressions de lambda pour cette comparaison n'est pas prise en charge nativement.

Une approche concise en utilisant IEqualityComparer

Une solution consiste à créer un IEqualityComparer en ligne:

<code class="language-csharp">var distinctValues = myCustomerList.Distinct(
    EqualityComparer<Customer>.Create((c1, c2) => c1.CustomerId == c2.CustomerId)
);</code>
Copier après la connexion

Cette méthode, bien que fonctionnelle, peut se sentir quelque peu lourde.

Alternative: levier GroupBy et Select

Une alternative plus élégante contourne la nécessité d'un IEqualityComparer explicite. Cette approche utilise GroupBy et Select:

<code class="language-csharp">IEnumerable<Customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());</code>
Copier après la connexion

Cela regroupe les éléments basés sur la clé spécifiée (CustomerId dans ce cas), puis sélectionne le premier élément de chaque groupe, filtrant efficacement les doublons. Cela fournit une solution plus propre et plus lisible pour obtenir des valeurs distinctes en utilisant des expressions 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