linq ke sql: pemahaman dan Select
SelectMany
dan Select
. Kedua -dua data projek, tetapi pendekatan mereka berbeza dengan ketara. SelectMany
Melaksanakan transformasi satu sama lain. Ia mengambil setiap elemen dari urutan input dan menggunakan fungsi untuk menghasilkan elemen baru dalam urutan output. Ini sesuai untuk mengekstrak sifat tertentu atau melakukan pengiraan pada item individu. Select
, sebaliknya, meratakan urutan urutan ke dalam urutan tunggal. Ini tidak ternilai apabila bekerja dengan struktur data hierarki atau bersarang. Ia membolehkan anda melintasi pelbagai peringkat dan mengakses unsur -unsur yang mendasari. SelectMany
yang mengandungi koleksi objek Person
: PhoneNumber
<code class="language-csharp">public class PhoneNumber { public string Number { get; set; } } public class Person { public IEnumerable<PhoneNumber> PhoneNumbers { get; set; } public string Name { get; set; } }</code>
Contoh: Select
<code class="language-csharp">IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);</code>
untuk mendapatkan urutan urutan nombor telefon -satu untuk setiap orang. Hasilnya tetap bersarang. Select
Contoh: SelectMany
<code class="language-csharp">IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
meratakan struktur bersarang, menghasilkan urutan tunggal yang mengandungi semua nombor telefon dari semua orang. SelectMany
menggabungkan data ibu bapa dan kanak -kanak dengan : SelectMany
adalah keupayaannya untuk memasukkan data induk ke dalam unjuran. Menggunakan beban dengan parameter kedua, anda boleh membuat objek baru menggabungkan sifat ibu bapa dan kanak -kanak: SelectMany
<code class="language-csharp">var directory = people .SelectMany(p => p.PhoneNumbers, (parent, child) => new { parent.Name, child.Number });</code>
dan Person
. PhoneNumber
Atas ialah kandungan terperinci Apakah perbezaan antara pengendali Select dan SelectMany Linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!