Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Linq dapat menjana semua kombinasi rentetan yang mungkin dari dua tatasusunan?

Bagaimanakah Linq dapat menjana semua kombinasi rentetan yang mungkin dari dua tatasusunan?

DDD
Lepaskan: 2025-01-31 05:16:16
asal
199 orang telah melayarinya

How Can LINQ Generate All Possible String Combinations from Two Arrays?

Gunakan linq untuk menghasilkan semua kombinasi yang mungkin

Dalam pengaturcaraan, semua kombinasi elemen yang mungkin sering diperlukan dari pelbagai senarai. Isu ini menerangkan adegan yang perlu menggabungkan dua array untuk membuat satu set rentetan.

penyelesaian

Untuk menghasilkan semua kombinasi yang mungkin dari array, kita boleh menggunakan Descartes untuk mengumpul teknologi. Ini melibatkan penciptaan senarai baru, yang mengandungi semua kombinasi elemen yang mungkin dalam array input. Senarai yang dihasilkan akan mempunyai jumlah elemen yang sama dengan input panjang nombor input.

Linq (Integrasi Bahasa Siasatan) menyediakan cara yang elegan untuk melaksanakan pengumpulan descartes dan menghasilkan gabungan yang diperlukan. Kuncinya ialah menggunakan pengendali zip, yang menggabungkan unsur -unsur dalam dua urutan ke dalam urutan elemen tunggal.

Kod berikut menunjukkan cara menggunakan LINQ untuk menghasilkan semua kombinasi yang mungkin:

di sini, fungsi CartesianProduct menghasilkan descartes urutan yang dicipta oleh Enumerable.range. Simbol pengkomputeran zip menggabungkan unsur -unsur dalam setiap urutan ke dalam rentetan.

<code class="language-csharp">var arr1 = new[] { "a", "b", "c" };
var arr2 = new[] { 3, 2, 4 };

var result = from cpLine in CartesianProduct(
                 from count in arr2 select Enumerable.Range(1, count))
             select cpLine.Zip(arr1, (x1, x2) => x2 + x1);</code>
Salin selepas log masuk
Hasil yang dihasilkan adalah urutan urutan rentetan, menunjukkan gabungan yang mungkin. Kod dan kemudian berulang dan mencetaknya ke konsol:

Kaedah ini menyediakan kaedah yang secara langsung menghasilkan gabungan elemen yang mungkin dalam dua array. Ia menggunakan sintaks ekspresi Linq dan prinsip Descartes untuk mendapatkan hasil yang diperlukan dengan cekap.

Atas ialah kandungan terperinci Bagaimanakah Linq dapat menjana semua kombinasi rentetan yang mungkin dari dua tatasusunan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan