Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menghimpunkan Senarai Objek mengikut Harta Dikongsi Menggunakan LINQ?

Bagaimanakah Saya Boleh Menghimpunkan Senarai Objek mengikut Harta Dikongsi Menggunakan LINQ?

Susan Sarandon
Lepaskan: 2025-01-13 12:12:43
asal
974 orang telah melayarinya

How Can I Group a List of Objects by a Shared Property Using LINQ?

Kumpulkan senarai objek menggunakan LINQ

Dalam pengaturcaraan berorientasikan objek, selalunya perlu untuk mengumpulkan objek mengikut syarat perkongsian. Ini boleh dilakukan dengan cekap menggunakan LINQ (Language Integrated Query). Di bawah ini kita akan meneroka cara mengumpulkan senarai objek ke dalam senarai berkumpulan baharu yang mengandungi berbilang senarai objek.

Soalan:

Pertimbangkan kelas yang mewakili pengguna:

<code class="language-csharp">public class User
{
    public int UserID { get; set; }
    public string UserName { get; set; }
    public int GroupID { get; set; }
}</code>
Salin selepas log masuk

Andaikan kami mempunyai senarai pengguna:

<code class="language-csharp">List<User> userList = new List<User>();
userList.Add(new User { UserID = 1, UserName = "UserOne", GroupID = 1 });
userList.Add(new User { UserID = 2, UserName = "UserTwo", GroupID = 1 });
userList.Add(new User { UserID = 3, UserName = "UserThree", GroupID = 2 });
userList.Add(new User { UserID = 4, UserName = "UserFour", GroupID = 1 });
userList.Add(new User { UserID = 5, UserName = "UserFive", GroupID = 3 });
userList.Add(new User { UserID = 6, UserName = "UserSix", GroupID = 3 });</code>
Salin selepas log masuk

Matlamat kami adalah untuk mengumpulkan pengguna mengikut GroupID mereka, menghasilkan senarai pengguna yang dikumpulkan mengikut kumpulan.

Penyelesaian:

LINQ menyediakan mekanisme pengelompokan yang berkuasa menggunakan kaedah GroupBy. Coretan kod berikut menunjukkan cara untuk mencapai kumpulan yang diingini:

<code class="language-csharp">var groupedUserList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>
Salin selepas log masuk

Pecahan kod:

  1. GroupBy: Ini adalah teras operasi kumpulan. Ia mengumpulkan pengguna mengikut GroupID mereka, menjana senarai kumpulan di mana setiap kumpulan mewakili pengguna yang tergolong dalam kumpulan yang sama.
  2. Pilih: Memandangkan output GroupBy ialah senarai kumpulan (ditandakan sebagai IGrouping<int, User>), kita perlu memilih pengguna daripada setiap kumpulan. Kami menggunakan kaedah ToList dalam Select untuk menukar setiap kumpulan kepada senarai pengguna.
  3. ToList: Akhir sekali, kami menggunakan ToList untuk menukar senarai senarai pengguna kembali kepada senarai.

groupedUserList kini mengandungi kumpulan yang diperlukan: senarai senarai pengguna, dengan setiap senarai dalaman mewakili pengguna yang tergolong dalam kumpulan yang sama.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Senarai Objek mengikut Harta Dikongsi Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan