C# 如何根据列表中另一列的条件获取特定列的唯一列表<;T>;
我有一个类对象列表。列表名为“PERSON”,字段为“name,birthdommonth,birthdyear”。现在,我只想选择唯一的生日,这是特别的生日 假设数据如下所示:C# 如何根据列表中另一列的条件获取特定列的唯一列表<;T>;,c#,list,C#,List,我有一个类对象列表。列表名为“PERSON”,字段为“name,birthdommonth,birthdyear”。现在,我只想选择唯一的生日,这是特别的生日 假设数据如下所示: Name BirthMonth BirthYear ABC 1 1990 XYZ 3 1990 PQR 1 1990 TVW 12 1985 我希望得到如下结果: BirthMonth BirthYear 1 1990 3
Name BirthMonth BirthYear
ABC 1 1990
XYZ 3 1990
PQR 1 1990
TVW 12 1985
我希望得到如下结果:
BirthMonth BirthYear
1 1990
3 1990
12 1985
我试过以下方法,但不起作用:
var ele = Model.ToList();
var item = ele.Distinct(ele.SelectMany(x => x.Mon).Where(x => x.Year_No = prevYear));
@阿伦,你错了。匿名类型确实实现了
GetHashCode
和Equals
。阅读位于的最后一段:因为匿名类型上的Equals
和GetHashCode
方法是根据属性的Equals
和GetHashCode
方法定义的,所以相同匿名类型的两个实例只有在其所有属性都相等时才相等。这就是为什么可以在匿名类型实例的集合上使用所有与HashSet
相关的LINQ方法,比如Distinct
。那么我该怎么做呢?我无法得到类似的结果@你说的一个元素是什么意思,其中Year=1990?@MarcinJuraszek我的意思是现在想从新列表中选择一个项目。
var results = input.Select(x => new { x.BirthMonth, x.BirthYear }).Distinct().ToList();