仅从一个字段中查找对象列表中的不同值

时间:2015-06-25 13:52:32

标签: c# .net linq distinct

如何从对象列表中选择不同的值? 我想只得到一个特定字段的列表,而不是整个对象的列表。

例如要查询的集合:

name   year
Item1  2009
Item2  2009
Item3  2010
Item4  2010
Item5  2011
Item6  2011

并且我想要返回不同的年份以获得以下结果集合

2009
2010
2011
2012

我试过

distinctyears = myCollection.GroupBy(x => x.year).Select(x => x.First()).ToList();

但是这将返回整个对象的集合,而不是仅返回年份值。

1 个答案:

答案 0 :(得分:5)

distinctyears = myCollection.Select(x => x.year).Distinct()

将为您返回IEnumerable<int>(或任何类型的年份)

无需进行分组 - 你想要的只是结果中的年份,所以只需抓住它。