dengan cekap mengumpulkan objek orang dan mengambil nama kereta dengan linq
Contoh ini menunjukkan bagaimana untuk mengumpulkan koleksi objek oleh Person
mereka dan mengambil nama kereta yang berkaitan menggunakan kaedah LINQ PersonId
atau GroupBy
. Anggapkan anda mempunyai senarai objek ToLookup
, masing -masing dengan harta Person
dan PersonId
. Matlamatnya adalah untuk mengumpulkan orang dengan car
yang sama dan dapatkan senarai kereta untuk setiap kumpulan. PersonId
menyediakan cara ringkas untuk mencapai kumpulan ini: GroupBy
<code class="language-csharp">var results = persons.GroupBy(p => p.PersonId) .Select(g => new { PersonId = g.Key, Cars = g.Select(p => p.car).ToList() });</code>
senarai oleh persons
harta. Kemudian, untuk setiap kumpulan (PersonId
), ia mewujudkan objek tanpa nama yang mengandungi g
(PersonId
) dan senarai nama kereta (g.Key
). g.Select(p => p.car).ToList()
mencipta struktur carian, sama dengan kamus, menawarkan akses berasaskan kunci yang cekap: ToLookup
<code class="language-csharp">var carsByPersonId = persons.ToLookup(p => p.PersonId, p => p.car);</code>
spesifik kemudian sangat mudah: personId
<code class="language-csharp">var carsForPerson = carsByPersonId[personId].ToList(); // Convert to List if needed</code>
. Pilih kaedah yang paling sesuai dengan keperluan dan gaya pengekodan anda; PersonId
mungkin lebih baik jika anda menjangkakan carian yang kerap dengan ToLookup
. PersonId
Atas ialah kandungan terperinci Bagaimana cara kumpulan orang dengan id dan mengambil nama kereta yang berkaitan di Linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!