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>
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>
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>
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!