首頁 >後端開發 >C++ >如何在特定對象屬性上使用Linq的Distine()方法?

如何在特定對象屬性上使用Linq的Distine()方法?

Barbara Streisand
Barbara Streisand原創
2025-02-02 09:16:08279瀏覽

How Can I Use LINQ's Distinct() Method on Specific Object Properties?

>使用linq的distract()作為唯一對象屬性 linq's

方法有效地從序列中刪除了重複的項目。 但是,您通常需要根據特定對象屬性識別唯一性,而不是整個對象。

>Distinct()>示例:基於ID

的唯一人 >假設您有一個>

屬性的類。要根據其ID獲取獨特的人的列表,請按

進行對列表進行分組,然後從每個組中選擇第一人稱:Person Id Id

>處理多個屬性
<code class="language-csharp">List<Person> distinctPeople = allPeople
    .GroupBy(p => p.Id)
    .Select(g => g.First())
    .ToList();</code>

確保跨多個屬性(例如,

)的唯一性,創建一個匿名類型作為分組密鑰:

Id FavoriteColor>

重要說明:查詢提供商兼容性
<code class="language-csharp">List<Person> distinctPeople = allPeople
    .GroupBy(p => new { p.Id, p.FavoriteColor })
    .Select(g => g.First())
    .ToList();</code>

一些查詢提供商(例如實體框架核心的較舊版本),如果組為空,則可能會拋出異常。 在這種情況下,用替換。 如果

返回

,您需要在代碼中處理這種可能性。 > First()FirstOrDefault()ef core(pre-version 6)solutionFirstOrDefault()null>

對於6之前的EF核心版本,需要採取更強大的方法來處理潛在的空群體。 有關詳細的解決方案,請參閱此堆棧溢出答案:>這提供了一種優雅地處理屬性組合沒有任何競爭對象的方法。

以上是如何在特定對象屬性上使用Linq的Distine()方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn