>使用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
>
以上是如何在特定对象属性上使用Linq的Distine()方法?的详细内容。更多信息请关注PHP中文网其他相关文章!