Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah IEnumerable.Intersect() Boleh Cari Persilangan Senarai Berbilang dalam C#?

Bagaimanakah IEnumerable.Intersect() Boleh Cari Persilangan Senarai Berbilang dalam C#?

Barbara Streisand
Lepaskan: 2025-01-15 12:13:44
asal
660 orang telah melayarinya

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

Gunakan IEnumerable.Intersect() untuk mencari persilangan berbilang senarai dalam C#

Dalam C#, anda boleh menggunakan IEnumerable.Intersect() untuk mencari elemen biasa berbilang senarai dengan cekap.

Huraian Masalah

Andaikan anda mempunyai satu set senarai dan perlu mencari elemen persilangannya. Contohnya:

<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>
Salin selepas log masuk

Tugasnya ialah menggunakan IEnumerable.Intersect() untuk melaksanakan carian persimpangan ini.

Penyelesaian

Untuk melaksanakan operasi persilangan pada berbilang senarai, gunakan IEnumerable.Intersect() secara berulang. Menggunakan gelung foreach, mula-mula hitung persilangan dua senarai pertama, kemudian potong hasil dengan senarai ketiga, dan seterusnya sehingga semua senarai telah diproses.

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

// 与其余列表求交集
foreach (var list in listOfLists.Skip(1))
{
    intersection.IntersectWith(list.ToHashSet());
}</code>
Salin selepas log masuk

Penyelesaian ini mudah dan mudah.

Nota Prestasi

Prestasi penyelesaian ini mungkin berbeza bergantung pada bilangan dan saiz senarai. Untuk set data yang besar, disyorkan untuk menggunakan penyelesaian yang lebih optimum, seperti menggunakan HashSet.

Atas ialah kandungan terperinci Bagaimanakah IEnumerable.Intersect() Boleh Cari Persilangan Senarai Berbilang dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan