LINQ's Distinct() with Complex Object Properties
LINQ's Distinct() method provides an efficient way to remove duplicate elements from a collection.但是,基于一个或多个对象属性找到不同的元素需要一种不同的方法。
分组属性以获取不同的结果
以基于特定属性获得明显的结果,请使用组创建组并从每个组中选择一个代表的GroupBy()和First()方法。例如:在这种情况下,在这种情况下,查询所有人的属性,并从每个组中选择第一人称。结果是基于他们的pertyid的独特列表。
List<Person> distinctPeople = allPeople .GroupBy(p => p.PersonId) .Select(g => g.First()) .ToList();
> 如果基于多个属性需要明显的结果,请按以下方式修改查询:
>>此查询人们通过其个性化和favoriteColor属性将基于这两个条件的独特列表确保。List<Person> distinctPeople = allPeople .GroupBy(p => new { p.PersonId, p.FavoriteColor }) .Select(g => g.First()) .ToList();
>考虑
提供者可能不能保证每个组至少具有一个元素。在这种情况下,请考虑使用firstOrdeFault()而不是first()。此外,此技术可能不适用于6点之前的实体框架核心版本。请访问https://stackoverflow.com/a/666529949/8155在此类环境中兼容。>>>>>>>>>>>>>>>>>>。以上是如何使用LINQ根据特定属性获取不同的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!