Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Menghimpunkan Objek ke dalam Struktur Senarai Hierarki?
Kumpulkan objek ke dalam struktur senarai hierarki menggunakan LINQ
Andaikan anda mempunyai satu set objek yang mempunyai sifat yang mengelaskannya. Sebagai contoh, bayangkan anda mempunyai satu set pengguna yang tergolong dalam kumpulan yang berbeza. Untuk menyusun dan menganalisis data dengan cekap, anda mungkin mahu mengumpulkan pengguna berdasarkan persatuan kumpulan mereka.
Dalam contoh ini, kita mempunyai kelas yang dipanggil User
dengan atribut termasuk UserID
, UserName
dan GroupID
. Katakan kami mempunyai senarai pengguna yang kelihatan seperti ini:
<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>
Matlamat kami adalah untuk menukar senarai ini kepada struktur hierarki yang mengumpulkan pengguna yang tergolong dalam kumpulan yang sama. Output yang diingini kelihatan seperti:
<code>GroupedUserList UserList UserID = 1, UserName = "UserOne", GroupID = 1 UserID = 2, UserName = "UserTwo", GroupID = 1 UserID = 4, UserName = "UserFour", GroupID = 1 UserList UserID = 3, UserName = "UserThree", GroupID = 2 UserList UserID = 5, UserName = "UserFive", GroupID = 3 UserID = 6, UserName = "UserSix", GroupID = 3</code>
Menggunakan keupayaan pengagregatan berkuasa LINQ, kita boleh mencapai pengelompokan ini menggunakan kod berikut:
<code class="language-csharp">var groupedCustomerList = userList .GroupBy(u => u.GroupID) .Select(grp => grp.ToList()) .ToList();</code>Kaedah
GroupBy
mengelaskan pengguna berdasarkan atribut GroupID
mereka. Ia menjana koleksi kumpulan, di mana setiap kumpulan mewakili GroupID
yang unik. Kaedah Select
menukarkan lagi kumpulan ini kepada senarai pengguna, memberikan kami struktur hierarki yang menempatkan senarai pengguna dalam setiap kumpulan.
Dengan menggunakan pertanyaan LINQ ini, anda boleh menyusun data dengan berkesan ke dalam kumpulan yang bermakna, dengan itu meningkatkan keupayaan analisis dan manipulasi data anda.
Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Menghimpunkan Objek ke dalam Struktur Senarai Hierarki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!