首頁 > 後端開發 > C++ > LINQ 如何將物件分組為分層清單結構?

LINQ 如何將物件分組為分層清單結構?

Linda Hamilton
發布: 2025-01-13 11:49:44
原創
496 人瀏覽過

How Can LINQ Group Objects into a Hierarchical List Structure?

使用LINQ將物件分組到分層列表結構

假設您有一組對象,這些對象具有對其進行分類的屬性。例如,想像一下,您有一組屬於不同群組的使用者。為了有效地組織和分析數據,您可能希望根據使用者的群組關聯對其進行分組。

在本例中,我們有一個名為User的類,其屬性包括UserIDUserNameGroupID。假設我們有一個如下所示的使用者列表:

<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>
登入後複製

我們的目標是將此清單轉換為一個分層結構,該結構將屬於同一組的使用者分組在一起。所需輸出類似:

<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>
登入後複製

利用LINQ強大的聚合功能,我們可以使用以下程式碼實現此分組:

<code class="language-csharp">var groupedCustomerList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>
登入後複製

GroupBy方法根據使用者的GroupID屬性來分類使用者。它產生一個組的集合,其中每個組代表一個獨特的GroupIDSelect方法進一步將這些群組轉換為使用者列表,為我們提供一個分層結構,該結構將使用者列表嵌套在每個群組中。

透過使用此LINQ查詢,您可以有效地將資料組織成有意義的群組,從而增強資料分析和操作能力。

以上是LINQ 如何將物件分組為分層清單結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板