IEnumerable.Intersect()를 사용하여 C#에서 여러 목록의 교차점을 효율적으로 찾습니다
데이터 분석 및 처리 분야에서 여러 목록의 교차점을 찾는 것은 매우 일반적인 작업입니다. 이 문제를 해결하는 방법은 여러 가지가 있지만 IEnumerable.Intersect() 메서드를 사용하는 것이 효율적인 솔루션을 제공합니다. 이 문서에서는 이 방법을 사용하여 여러 목록의 교집합을 식별하고 검색하는 방법을 살펴봅니다.
C#에서는 여러 시퀀스에 적용할 때 IEnumerable.Intersect() 메서드를 사용하여 모든 시퀀스에 공통된 요소를 가져올 수 있습니다. 이 방법을 사용하여 여러 목록의 교차점을 찾는 방법을 보려면 다음 예를 고려하세요.
<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>
IEnumerable.Intersect()를 사용하여 이러한 목록의 교차점을 찾으려면 다음 방법을 활용할 수 있습니다.
<code class="language-csharp">var intersection = listOfLists .Skip(1) .Aggregate( new HashSet<int>(listOfLists.First()), (h, e) => { h.IntersectWith(e); return h; } );</code>
이 솔루션의 목적은 다음과 같습니다.
이 솔루션은 IEnumerable.Intersect()를 사용하여 여러 목록의 교차점을 찾는 간결하고 효율적인 방법을 제공합니다. HashSet의 최적화 기능을 활용하여 중복 요소를 처리하고 빠른 교차 작업을 수행합니다.
listOfLists에는 교차를 초기화할 목록이 항상 하나 이상 포함되어야 한다는 점에 유의하는 것이 중요합니다. 목록이 비어 있으면 ArgumentNullException이 발생합니다.
위 내용은 IEnumerable.Intersect()를 사용하여 C#에서 여러 목록의 교차점을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!