首頁 > 後端開發 > C++ > C# 中 IEnumerable.Intersect() 如何找出多個清單的交集?

C# 中 IEnumerable.Intersect() 如何找出多個清單的交集?

Barbara Streisand
發布: 2025-01-15 12:13:44
原創
659 人瀏覽過

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

利用 IEnumerable.Intersect() 在 C# 中找出多個清單的交集

在 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() 來實現這個交集查找。

為了對多個清單執行交集運算,可以迭代地使用 IEnumerable.Intersect()。使用 foreach 循環,先計算前兩個清單的交集,然後將結果與第三個清單求交集,以此類推,直到處理完所有清單。

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

// 与其余列表求交集
foreach (var list in listOfLists.Skip(1))
{
    intersection.IntersectWith(list.ToHashSet());
}</code>
登入後複製

此解決方案簡單易行。

效能注意事項

根據清單的數量和大小,此解決方案的效能可能會有差異。對於大型資料集,建議使用更最佳化的方案,例如使用 HashSet

以上是C# 中 IEnumerable.Intersect() 如何找出多個清單的交集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板