首頁 > 後端開發 > C++ > 如何使用 LINQ 有效計算物件清單中的重複屬性?

如何使用 LINQ 有效計算物件清單中的重複屬性?

Susan Sarandon
發布: 2024-12-29 09:33:11
原創
707 人瀏覽過

How Can I Efficiently Count Duplicate Properties in a List of Objects Using LINQ?

使用LINQ 計算物件列表中的重複項

給定具有唯一屬性的物件列表,確定重複屬性的計數是程式設計中的常見需求。使用 LINQ(語言整合查詢)語法,可以有效地完成此任務。

使用 GroupBy 和 OrderBy

基本方法涉及利用 LINQ 的 GroupBy 和 OrderBy 運算子。 GroupBy 根據指定的屬性將清單劃分為群組,而 OrderBy 根據元素的數量按降序排列群組。

var groupedItems = list.GroupBy(x => x.Property)
                    .Select(x => new { Property = x.Key, Count = x.Count() });

var orderedItems = orderedItems.OrderByDescending(x => x.Count);
登入後複製

此程式碼根據指定的屬性對物件進行分組,計算每個組中的數量組,然後按數量降序對群組進行排序。

自訂物件比較

如果物件缺少直接比較的屬性,可以定義自訂比較器或 lambda 表達式。例如,如果物件具有唯一的 ID 屬性:

var groupedItems = list.GroupBy(x => new { x.Property, x.ID })
                    .Select(x => new { Property = x.Key.Property, Count = x.Count() });
登入後複製

處理多個屬性

要考慮進行分組的多個屬性,可以使用組合鍵:

var groupedItems = list.GroupBy(x => new { x.Property1, x.Property2 })
                    .Select(x => new { Property1 = x.Key.Property1, Property2 = x.Key.Property2, Count = x.Count() });
登入後複製

使用擴充實作方法

為了讓程式碼更簡潔,可以使用擴充方法:

public static IEnumerable<T> CountDuplicates<T>(this IEnumerable<T> list, Func<T, object> keySelector)
{
    return list.GroupBy(keySelector)
                .Select(x => new { Key = x.Key, Count = x.Count() });
}
登入後複製

此擴充方法提供了一種可重複使用的方法來根據指定的鍵選擇器函數來計算重複項。

透過利用 LINQ 的強大功能並利用這些技術,開發人員可以有效地管理和分析物件清單中涉及重複值的資料。

以上是如何使用 LINQ 有效計算物件清單中的重複屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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