Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Mengumpulkan Senarai Objek dengan Cekap ke dalam Senarai Senarai?

Bagaimanakah LINQ Boleh Mengumpulkan Senarai Objek dengan Cekap ke dalam Senarai Senarai?

Barbara Streisand
Barbara Streisandasal
2025-01-13 10:29:43285semak imbas

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

Kumpulkan objek ke dalam senarai senarai menggunakan LINQ

Apabila berurusan dengan struktur data yang kompleks, pengurusan dan organisasi data yang berkesan adalah penting. Pustaka LINQ yang berkuasa dalam C# membolehkan manipulasi data yang ringkas dan cekap. Soalan ini meneroka senario tertentu di mana senarai objek perlu dikumpulkan berdasarkan medan tertentu, menghasilkan senarai senarai baharu.

Coretan kod yang disediakan menunjukkan kelas yang dipanggil Pengguna yang mempunyai sifat UserID, UserName dan GroupID. Mencipta senarai contoh pengguna dengan ID kumpulan yang berbeza. Matlamatnya adalah untuk menggunakan LINQ untuk mengumpulkan pengguna ini mengikut persatuan kumpulan mereka.

Pendekatan asal menggunakan GroupBy untuk mencapai ini, tetapi menghadapi masalah mengembalikan senarai kunci. Untuk menyelesaikan masalah ini, kaedah perlu diubah suai sedikit. Kod berikut menunjukkan pelaksanaan yang betul:

<code class="language-csharp">var groupedCustomerList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>
  1. GroupBy: Kaedah GroupBy digunakan pada userList. Ia berulang melalui senarai, mengumpulkan pengguna menggunakan sifat GroupID sebagai kunci.
  2. Pilih: Hasil GroupBy ialah urutan kumpulan, di mana setiap kumpulan mewakili pengguna dengan GroupID yang sama. Kaedah Pilih digunakan untuk menukar setiap kumpulan kepada Senarai baharu.
  3. ToList: Panggilan ToList terakhir menukarkan jujukan senarai kumpulan kepada Senarai> sebenar.

Kaedah ini mengumpulkan pengguna secara berkesan mengikut GroupID, menghasilkan senarai hierarki senarai. Setiap senarai luar mewakili kumpulan, dan setiap senarai dalaman mengandungi pengguna yang tergolong dalam kumpulan itu. Struktur ini membolehkan akses mudah dan manipulasi data pengguna berkumpulan.

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