首頁 > 後端開發 > C++ > LINQ 如何有效率地統計並彙總 C# 清單中的重複物件?

LINQ 如何有效率地統計並彙總 C# 清單中的重複物件?

Barbara Streisand
發布: 2025-01-03 02:25:38
原創
937 人瀏覽過

How Can LINQ Efficiently Count and Summarize Duplicate Objects in a C# List?

使用 LINQ 和 C 計算重複項

在資料操作領域,通常需要根據某些條件聚合資料。當您需要計算物件清單中的重複項時,就會發生這種情況。 LINQ(語言整合查詢)為此任務提供了一個優雅的解決方案。

問題:總結重複物件

初始查詢:

var q = from x in inventory
                 group x by x into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key.gameName, gameID = g.Key.gameID };
登入後複製

雖然此查詢提供了計數和每個重複項的名稱,但它省略了遊戲 ID。為了解決這個問題,我們必須修改我們的方法。

解決方案:自訂分組和選擇

按物件屬性分組:

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };
登入後複製

根據遊戲名稱對物件進行分組屬性,我們有效地聚合具有相同名稱的對象。

選擇第一個物件的ID:

gameID = g.First().gameID
登入後複製

由於同名的物件可能有不同的 ID,因此我們使用 First() 來擷取群組中第一個物件的 ID。這確保了我們為每個唯一的遊戲名稱都有一個 ID。

完整範例:

將上述邏輯封裝在完整的程式碼片段中:

var inventory = new List<game>();

// ... additional code for populating the inventory list

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };

// ... additional code for displaying the results
登入後複製

現在,查詢將正確顯示每個唯一遊戲名稱的計數、遊戲名稱和遊戲ID,並按最高重複次數排序。

以上是LINQ 如何有效率地統計並彙總 C# 清單中的重複物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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