基于对象属性的 Linq Distinct

标签 linq distinct

是否可以获得 List 的不同元素?基于 List 中对象的属性?

有点像:Distinct(x => x.id)
对我没有用的是以下内容:.Select(x => x.id).Distinct()因为那样我会得到一个 List<int>而不是 List<MyClass>

最佳答案

你需要 DistinctBy。它不是标准 .NET 库的一部分,但 Jon Skeet 为 Linq to objects 做了一个实现 here .它也包含在 morelinq 中.

关于基于对象属性的 Linq Distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082566/

相关文章:

c# - 使用 LINQ 在 Varray 中添加值

c# - 为什么泛型类型推断在那种情况下不起作用?

database - 使用自定义顺序区分列

sql - 在 PostgreSQL 中插入唯一值

count - 配置单元中的累积不同计数

MySQL:选择参加三门不同类(class)的记录

c# - Linq to Object 的日期时间周期

c# - 关于从集合中选择不同元素的 LINQ 建议

c# - 为什么 ToLookup 和 GroupBy 不同?

mysql - Mysql中Concat子句后获取不同记录