Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Menentukan dengan Cekap jika Satu Tatasusunan ialah Subset daripada Satu Lagi?

Bagaimanakah LINQ Boleh Menentukan dengan Cekap jika Satu Tatasusunan ialah Subset daripada Satu Lagi?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-20 06:01:08630semak imbas

How Can LINQ Efficiently Determine if One Array is a Subset of Another?

Gunakan LINQ dengan cekap untuk menentukan hubungan antara subset tatasusunan

Menentukan sama ada tatasusunan ialah subset tatasusunan lain ialah tugas pengaturcaraan biasa. Di sini, subset merujuk kepada set yang kesemua elemennya terdapat dalam tatasusunan induk. Hubungan ini boleh ditentukan dengan cekap menggunakan kuasa LINQ (Language Integrated Query).

Andaikan kita mempunyai dua senarai:

<code>List<double> t1 = new List<double> { 1, 3, 5 };
List<double> t2 = new List<double> { 1, 5 };</code>

Matlamat kami ialah menggunakan LINQ untuk menentukan sama ada t2 ialah subset bagi t1.

Untuk melakukan ini, kita boleh menggunakan operator Except untuk mengecualikan elemen dalam t1 yang tidak terdapat dalam t2. Jika senarai yang terhasil kosong, ini bermakna setiap elemen dalam t2 hadir dalam t1, menunjukkan bahawa t2 sememangnya subset bagi t1.

Ungkapan LINQ berikut merangkumi logik ini:

<code>bool isSubset = !t2.Except(t1).Any();</code>

Jika nilai isSubset ialah true, maka disahkan bahawa t2 ialah subset bagi t1. Sebaliknya, jika isSubset ialah false, maka t2 bukan subset bagi t1.

Dalam contoh kami, kerana setiap elemen dalam t2 (iaitu 1 dan 5) juga terdapat dalam t1, operasi Except akan menghasilkan senarai kosong dan ungkapan akan menilai kepada true, sekali gus mengesahkan t2 ialah subset daripada t1.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Menentukan dengan Cekap jika Satu Tatasusunan ialah Subset daripada Satu Lagi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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