Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mengumpulkan objek orang oleh personid dan mendapatkan model kereta yang unik menggunakan linq?

Bagaimanakah saya boleh mengumpulkan objek orang oleh personid dan mendapatkan model kereta yang unik menggunakan linq?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-02 00:16:12928semak imbas

How Can I Group Person Objects by PersonID and Get Unique Car Models Using LINQ?

Gunakan linq untuk kumpulan personid

Dalam contoh ini, matlamat anda adalah untuk mengumpulkan senarai objek orang mengikut atribut personid dan mengambil satu -satunya senarai model kereta untuk semua orang. Untuk tujuan ini, anda boleh menggunakan sambungan GroupBy yang disediakan oleh Linq.

Pertanyaan Linq berikut menunjukkan cara kumpulan personid dan mengekstrak senarai kereta yang berkaitan dengan semua orang:

<code class="language-csharp">var results = from p in persons
              group p.car by p.PersonId into g
              select new { PersonId = g.Key, Cars = g.Distinct().ToList() };</code>
Penjelasan:

Buat semua atribut kereta berdasarkan setiap nilai personid yang unik.
  • Hasil pengumpulan adalah urutan objek tanpa nama. group p.car by p.PersonId Kaedah memastikan bahawa hanya satu -satunya model kereta yang dikembalikan.
  • Distinct() atau, anda boleh menggunakan Lookup untuk mengambil semula senarai kereta orang tertentu:

Penggunaan:

<code class="language-csharp">var carsByPersonId = persons.ToLookup(p => p.PersonId, p => p.car);</code>

Jika tidak ada ID orang yang ditetapkan dalam kaedah ini, urutan kosong dikembalikan. Pastikan untuk mengembalikan satu -satunya senarai model kereta.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan objek orang oleh personid dan mendapatkan model kereta yang unik menggunakan linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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