Gunakan LINQ untuk menentukan hubungan antara subset tatasusunan
Apabila berurusan dengan tatasusunan atau senarai, selalunya perlu untuk mengesahkan sama ada satu tatasusunan ialah subset tatasusunan lain. Dalam konteks ini, "subset" merujuk kepada set yang mengandungi semua elemen set lain.
Sebagai contoh, pertimbangkan senario berikut:
<code class="language-csharp">List<double> t1 = new List<double> { 1, 3, 5 }; List<double> t2 = new List<double> { 1, 5 };</code>
Kita perlu menentukan sama ada t2 ialah subset bagi t1. Untuk ini, kita boleh memanfaatkan kefungsian LINQ (Language Integrated Query) dalam C#.
LINQ menyediakan cara yang mudah dan ringkas untuk melaksanakan operasi set pada koleksi. Salah satu daripada operasi ini ialah kaedah Except
, yang mengecualikan elemen yang turut terdapat dalam koleksi lain.
Untuk menyemak sama ada t2 ialah subset kepada t1, kita boleh menggunakan kaedah Except
seperti berikut:
<code class="language-csharp">bool isSubset = !t2.Except(t1).Any();</code>
Kod berfungsi seperti berikut:
Except
digunakan untuk mencipta urutan baharu yang mengandungi hanya elemen dalam t2 yang tidak terdapat dalam t1. Any
digunakan pada jujukan yang terhasil ini untuk menyemak sama ada terdapat sebarang unsur. !
digunakan untuk menafikan hasil Any
, yang bermaksud bahawa jika urutan yang terhasil adalah kosong (iaitu tiada unsur hadir, menunjukkan bahawa t2 ialah subset t1), maka true
dikembalikan. Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Menentukan sama ada Satu Tatasusunan ialah Subset kepada Yang Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!