在資料操作領域,通常需要根據某些條件聚合資料。當您需要計算物件清單中的重複項時,就會發生這種情況。 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 };
根據遊戲名稱對物件進行分組屬性,我們有效地聚合具有相同名稱的對象。
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中文網其他相關文章!