Menggunakan LINQ untuk melaksanakan operasi produk Cartesian
Produk Cartesian ialah operasi matematik yang menggabungkan elemen daripada berbilang set untuk mencipta set baharu yang mengandungi semua kemungkinan gabungan. Ini berguna apabila menjana ujian atau menganalisis data.
Dari segi masalah anda, anda ingin mencari semua kemungkinan kombinasi anak anjing dalam sekumpulan anjing. Setiap anjing mungkin mempunyai beberapa anak anjing dan anda perlu mempertimbangkan satu anak anjing bagi setiap anjing.
Menggunakan LINQ, anda boleh mencapai ini dengan menggunakan operasi produk Cartesian pada koleksi anak anjing yang dikaitkan dengan setiap anjing. Berikut ialah contoh:
<code class="language-csharp">var dog1Puppies = new[] { "puppy A", "puppy B" }; var dog2Puppies = new[] { "puppy C", "puppy D" }; var cartesianProduct = from dog1Puppy in dog1Puppies from dog2Puppy in dog2Puppies select new { dog1Puppy, dog2Puppy }; foreach (var pair in cartesianProduct) { Console.WriteLine($"{pair.dog1Puppy}, {pair.dog2Puppy}"); }</code>
Output:
<code>puppy A, puppy C puppy A, puppy D puppy B, puppy C puppy B, puppy D</code>
Kod ini menggunakan klausa from
LINQ untuk menjana produk Cartesian dan klausa select
untuk mencipta jenis tanpa nama yang mewakili setiap gabungan. Set yang terhasil mengandungi semua kemungkinan kombinasi anak anjing daripada kedua-dua set.
Jika anda mempunyai bilangan koleksi anjing yang berubah-ubah, anda boleh mengira secara dinamik produk Cartesian menggunakan kaedah sambungan CartesianProduct
yang disediakan dalam jawapan. Kaedah ini menerima bilangan jujukan yang berubah-ubah dan mengembalikan jujukan jujukan, setiap jujukan mewakili gabungan unik elemen dalam jujukan input.
Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Digunakan untuk Melaksanakan Produk Cartesian dan Menjana Semua Kemungkinan Gabungan Anak Anjing daripada Berbilang Set Anjing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!