


How to Find the Intersection of Multiple Lists Using IEnumerable.Intersect()?
Jan 15, 2025 am 11:36 AMUse IEnumerable.Intersect() to find the intersection of multiple lists
The IEnumerable.Intersect() method in C# allows you to find common elements in two sequences. But what if you have multiple lists and want to identify elements that are present in all lists?
Question:
Given a list of lists of integers:
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 };
How to use IEnumerable.Intersect() to find the intersection of these lists and get the result List
Solution 1: HashSet Aggregation
var intersection = listOfLists .Skip(1) .Aggregate( new HashSet<int>(listOfLists.First()), (h, e) => { h.IntersectWith(e); return h; } );
This solution uses the Aggregate() method to accumulate a HashSet that represents the intersection of lists. The Skip(1) method ensures that the first list in listOfLists is used as the initial value for the HashSet.
Solution 2: HashSet iteration
var intersection = new HashSet<int>(listOfLists.First()); foreach (var list in listOfLists.Skip(1)) { var intersect = new HashSet<int>(intersection); intersection.IntersectWith(list); }
This solution also uses a HashSet, but it iterates over the remaining lists, creating a new HashSet for each intersection.
Performance considerations:
Performance benchmarks show that in most cases the HashSet solution outperforms using a List. The difference in performance between the foreach method and the Aggregate method is negligible.
The above is the detailed content of How to Find the Intersection of Multiple Lists Using IEnumerable.Intersect()?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

What are the types of values returned by c language functions? What determines the return value?

C language function format letter case conversion steps

What are the definitions and calling rules of c language functions and what are the

Where is the return value of the c language function stored in memory?

How do I use algorithms from the STL (sort, find, transform, etc.) efficiently?

How does the C Standard Template Library (STL) work?
