Utilisez la requête LINQ pour filtrer les éléments de la liste
LINQ fournit un moyen efficace de filtrer les éléments d'une liste selon que l'élément existe ou non dans une autre liste. Veuillez consulter l'exemple de code ci-dessous :
<code class="language-csharp">class Program { static void Main(string[] args) { // 示例数据 List<Person> peopleList1 = new List<Person>() { new Person() { ID = 1 }, new Person() { ID = 2 }, new Person() { ID = 3 } }; List<Person> peopleList2 = new List<Person>() { new Person() { ID = 1 }, new Person() { ID = 2 }, new Person() { ID = 3 }, new Person() { ID = 4 }, new Person() { ID = 5 } }; } } class Person { public int ID { get; set; } }</code>
Nous devons trouver les éléments de peopleList2 qui ne sont pas dans peopleList1. Ceci peut être réalisé via LINQ.
Utilisez la méthode Except()
LINQ fournit la méthode Except()
, qui renvoie tous les éléments de la première liste qui ne figurent pas dans la deuxième liste. On peut l'utiliser comme suit :
<code class="language-csharp">var result = peopleList2.Except(peopleList1);</code>
Cela renverra une collection contenant des personnes avec les identifiants 4 et 5.
Utiliser la syntaxe de requête LINQ
LINQ nous permet également d'effectuer des opérations de filtrage en utilisant la syntaxe de requête. Voici une façon d'obtenir le même résultat en utilisant la syntaxe de requête :
<code class="language-csharp">var result = from p in peopleList2 where !peopleList1.Any(p2 => p2.ID == p.ID) select p;</code>
Cette requête produit les mêmes résultats que la méthode Except()
.
Description des performances :
Il convient de noter que la complexité temporelle des deux méthodes est O(n*m), où n et m sont les tailles des deux listes comparées. Cela signifie qu'à mesure que la taille de la liste augmente, le temps requis pour l'opération de filtrage augmente considérablement. Pour les grands ensembles de données, d’autres méthodes devront peut-être être explorées pour optimiser les performances.
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!