Rumah > pembangunan bahagian belakang > C++ > Bagaimana saya boleh meratakan senarai bersarang di Linq menggunakan selectMany ()?

Bagaimana saya boleh meratakan senarai bersarang di Linq menggunakan selectMany ()?

DDD
Lepaskan: 2025-01-26 15:42:11
asal
458 orang telah melayarinya

How Can I Flatten a Nested List in LINQ Using SelectMany()?

Gunakan LINQ untuk meratakan senarai bersarang

Apabila berurusan dengan senarai bersarang dalam LINQ, kadangkala perlu untuk menukar berbilang senarai menjadi satu senarai diratakan. Ini boleh dicapai menggunakan kaedah SelectMany().

Adegan:

Pertimbangkan pertanyaan LINQ berikut yang mengembalikan senarai integer bersarang:

<code class="language-csharp">IEnumerable<List<int>> iList = (from number in (from no in Method() select no) select number).ToList();</code>
Salin selepas log masuk

Jika anda perlu mengeluarkan satu senarai yang mengandungi semua elemen dalam senarai bersarang, anda boleh mengubah suai pertanyaan seperti berikut:

<code class="language-csharp">var result = iList.SelectMany(i => i);</code>
Salin selepas log masuk
Kaedah

SelectMany() mengambil setiap elemen urutan input (dalam kes ini, setiap senarai) dan menayangkannya ke dalam urutan baharu. Dengan menyatakan parameter i, setiap elemen senarai bersarang menjadi elemen baharu dalam jujukan output.

Contoh:

Untuk senarai sumber [1, 2, 3, 4] dan [5, 6, 7], pertanyaan yang diubah suai akan menghasilkan senarai diratakan berikut:

<code>[1, 2, 3, 4, 5, 6, 7]</code>
Salin selepas log masuk

Jadi, menggunakan kaedah SelectMany(), anda boleh menukar senarai integer bersarang kepada senarai diratakan tunggal dalam LINQ.

Atas ialah kandungan terperinci Bagaimana saya boleh meratakan senarai bersarang di Linq menggunakan selectMany ()?. 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