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>
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!