Distinct()如何在List<>上工作?匿名类型?它只是做一个属性比较?还是会一直返回相同的列表?
示例:
List<SomeObject> list;
....
....
var result = list
.Where(i => i.Condition)
.Select(i => new
{
Name = i.Name,
Date = i.Date
});
.Distinct()
.ToList()
请注意我在匿名类型列表中应用了distinct。
答案 0 :(得分:4)
来自MSDN
因为匿名类型上的Equals和GetHashCode方法是根据属性的Equals和GetHashcode方法定义的,所以同一匿名类型的两个实例只有在它们的所有属性相等时才相等。