首页 >后端开发 >C++ >如何使用LINQ根据特定属性获取不同的对象?

如何使用LINQ根据特定属性获取不同的对象?

Barbara Streisand
Barbara Streisand原创
2025-02-02 08:56:11304浏览

How Can I Use LINQ to Get Distinct Objects Based on Specific Properties?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn