Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据列表中另一列的条件获取特定列的唯一列表<;T>;_C#_List - Fatal编程技术网

C# 如何根据列表中另一列的条件获取特定列的唯一列表<;T>;

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

我有一个类对象列表。列表名为“PERSON”,字段为“name,birthdommonth,birthdyear”。现在,我只想选择唯一的生日,这是特别的生日

假设数据如下所示:

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();