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

Bagaimanakah LINQ Boleh Menghimpunkan Objek ke dalam Struktur Senarai Hierarki?

Linda Hamilton
Linda Hamiltonasal
2025-01-13 11:49:44487semak imbas

How Can LINQ Group Objects into a Hierarchical List Structure?

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!

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