Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Menghimpunkan Senarai Objek ke dalam Senarai Bersarang?

Bagaimanakah LINQ Boleh Menghimpunkan Senarai Objek ke dalam Senarai Bersarang?

Susan Sarandon
Susan Sarandonasal
2025-01-13 11:35:43621semak imbas

How Can LINQ Group a List of Objects into Nested Lists?

Kumpulkan senarai objek ke dalam senarai bersarang menggunakan LINQ

Organisasi data yang cekap adalah penting dalam bidang pengaturcaraan. LINQ menyediakan mekanisme yang berkuasa untuk mengumpulkan objek berdasarkan keadaan tertentu. Artikel ini akan menyelesaikan masalah biasa: mengumpulkan senarai objek ke dalam senarai baharu yang mengandungi senarai bersarang.

Pertimbangkan definisi kelas berikut:

<code>public class User
{
    public int UserID { get; set; }
    public string UserName { get; set; }
    public int GroupID { get; set; }
}</code>

Untuk mengumpulkan pengguna berdasarkan GroupID mereka, kami boleh menggunakan kod berikut:

<code>var groupedCustomerList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>

Tafsiran kod:

  1. GroupBy: Klausa ini membahagikan senarai pengguna asal kepada berbilang kumpulan berdasarkan atribut GroupID.
  2. Pilih: Ia kemudian menukar setiap hasil (iaitu set pengguna dengan ID Kumpulan yang sama) kepada senarai pengguna.
  3. ToList: Akhirnya, hasilnya ditukar kepada senarai baharu senarai bersarang, setiap senarai bersarang mengandungi pengguna daripada kumpulan yang sama.

Ungkapan LINQ ini mengumpulkan senarai pengguna asal mengikut GroupID dengan bijak, mempersembahkan mereka secara teratur. Setiap senarai bersarang dalam hasil akhir mewakili kumpulan pengguna yang berkongsi ID Kumpulan yang sama.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Menghimpunkan Senarai Objek ke dalam Senarai Bersarang?. 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