Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencari Item Unik dengan Cekap dalam Satu Senarai yang Tiada dalam Senarai Lain Menggunakan LINQ?
Memanfaatkan LINQ untuk Mengenalpasti Item Unik
LINQ (Language Integrated Query) menyediakan pendekatan yang diperkemas untuk membuat pertanyaan dan memanipulasi data dalam aplikasi .NET. Tugas yang kerap melibatkan mengenal pasti elemen dalam satu koleksi yang tiada daripada koleksi yang lain.
Contoh ini menunjukkan dua senarai Person
objek: peopleList1
dan peopleList2
. Matlamatnya adalah untuk mengeluarkan individu daripada peopleList2
yang tidak hadir dalam peopleList1
.
Penyelesaian Berasaskan LINQ
Pertanyaan LINQ berikut mencapai ini:
<code class="language-csharp">var result = peopleList2.Where(p => !peopleList1.Any(p2 => p2.ID == p.ID));</code>
Pertanyaan ini menapis peopleList2
, tidak termasuk mana-mana Person
yang ID
wujud dalam peopleList1
.
Pendekatan LINQ Alternatif
Ungkapan LINQ alternatif ialah:
<code class="language-csharp">var result = peopleList2.Where(p => peopleList1.All(p2 => p2.ID != p.ID));</code>
Pendekatan ini mengenal pasti Person
objek unik dalam peopleList2
dengan mengesahkan bahawa tiada Person
dalam peopleList1
berkongsi ID
yang sama.
Analisis Prestasi
Adalah penting untuk mempertimbangkan bahawa kedua-dua kaedah mempamerkan kerumitan masa O(nm), dengan n mewakili saiz peopleList1
dan m * mewakili saiz peopleList2
. Untuk set data yang luas, kerumitan ini boleh menyebabkan kesesakan prestasi. Dalam senario sedemikian, meneroka algoritma alternatif atau struktur data, seperti jadual cincang, mungkin diperlukan untuk pengoptimuman.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Item Unik dengan Cekap dalam Satu Senarai yang Tiada dalam Senarai Lain Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!