Maison > développement back-end > C++ > Comment IEnumerable.Intersect() peut-il trouver l'intersection de plusieurs listes en C# ?

Comment IEnumerable.Intersect() peut-il trouver l'intersection de plusieurs listes en C# ?

Barbara Streisand
Libérer: 2025-01-15 12:13:44
original
660 Les gens l'ont consulté

How Can IEnumerable.Intersect() Find the Intersection of Multiple Lists in C#?

Utilisez IEnumerable.Intersect() pour trouver l'intersection de plusieurs listes en C#

En C#, vous pouvez utiliser IEnumerable.Intersect() pour rechercher efficacement les éléments communs de plusieurs listes.

Description du problème

Supposons que vous ayez un ensemble de listes et que vous ayez besoin de trouver leur élément d'intersection. Par exemple :

<code class="language-csharp">var list1 = new List<int>() { 1, 2, 3 };
var list2 = new List<int>() { 2, 3, 4 };
var list3 = new List<int>() { 3, 4, 5 };
var listOfLists = new List<List<int>>() { list1, list2, list3 };

// 预期交集为 List<int>() { 3 }</code>
Copier après la connexion

La tâche consiste à utiliser IEnumerable.Intersect() pour mettre en œuvre cette recherche d'intersection.

Solution

Pour effectuer l'opération d'intersection sur plusieurs listes, utilisez IEnumerable.Intersect() de manière itérative. À l'aide d'une boucle foreach, calculez d'abord l'intersection des deux premières listes, puis coupez le résultat avec la troisième liste, et ainsi de suite jusqu'à ce que toutes les listes aient été traitées.

<code class="language-csharp">// 使用第一个列表初始化交集
var intersection = listOfLists[0].ToHashSet();

// 与其余列表求交集
foreach (var list in listOfLists.Skip(1))
{
    intersection.IntersectWith(list.ToHashSet());
}</code>
Copier après la connexion

Cette solution est simple et facile.

Notes de performances

Les performances de cette solution peuvent varier en fonction du nombre et de la taille des listes. Pour les grands ensembles de données, il est recommandé d'utiliser une solution plus optimisée, comme l'utilisation de HashSet.

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