Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Membandingkan Dua Senarai Besar untuk Perbezaan dalam C# dengan Cekap?

Bagaimanakah Saya Boleh Membandingkan Dua Senarai Besar untuk Perbezaan dalam C# dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2025-01-14 21:16:46
asal
742 orang telah melayarinya

How Can I Efficiently Compare Two Massive Lists for Differences in C#?

Strategi untuk membandingkan perbezaan dengan cekap dalam senarai besar

Membandingkan perbezaan boleh menjadi sangat intensif sumber apabila bekerja dengan senarai besar. Walaupun kaedah Contains() LINQ adalah amalan biasa, ia tidak cekap untuk set data besar-besaran. Penyelesaian yang lebih baik ialah menggunakan kaedah Except().

Gunakan kaedah Except()

Kaedah

Except() berfungsi pada IEnumerable dan mencari elemen yang terdapat dalam satu senarai tetapi tidak dalam senarai yang lain. Dengan menggunakan Except() pada kedua-dua senarai, kami mendapat dua senarai baharu:

  • firstNotSecond: Mengandungi elemen yang berada dalam senarai pertama tetapi tiada dalam senarai kedua.
  • secondNotFirst: Mengandungi elemen daripada senarai kedua yang tiada daripada senarai pertama.

Kaedah ini jauh lebih pantas daripada menggunakan semakan Contains(). Contohnya:

<code class="language-csharp">var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();</code>
Salin selepas log masuk

Keputusan digabungkan

Jika mahu, keputusan boleh digabungkan menjadi satu pernyataan:

<code class="language-csharp">return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
Salin selepas log masuk

Pernyataan ini dinilai kepada true jika dua senarai input mengandungi elemen yang sama dan false sebaliknya.

Nota tentang elemen berulang

Perlu diperhatikan bahawa kaedah Except() mengendalikan elemen berulang secara berbeza daripada kaedah Contains(). Dalam kod asal, elemen pendua dalam senarai pertama yang tidak terdapat dalam senarai kedua telah dilaporkan beberapa kali. Walau bagaimanapun, Except() hanya melaporkan setiap elemen berulang sekali. Perbezaan ini harus diambil kira apabila menggunakan penyelesaian ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Dua Senarai Besar untuk Perbezaan dalam C# dengan Cekap?. 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