c# - 仅通过一个字段从对象列表中查找不同的值

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

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

最佳答案

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

会给你一个IEnumerable<int> (或任何类型的年份)

无需进行分组 - 您只需要结果中的年份,所以只需捕获它即可。

关于c# - 仅通过一个字段从对象列表中查找不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31052358/

相关文章:

c# - 当子控件在小分辨率屏幕上被截断时,如何使子控件重新锚定到其父窗体?

c# - 如何使用 .Net 编写漂亮格式的 JSON 文件

c# - 形成两个列表并集的最简单方法

c# - 按两个不同类型的字段对不同模型的列表进行排序

c# - Linq if/else 条件?

linq - 使用 LINQ to NHibernate 将 LINQ IQueryable 转换为分页 IQueryable

c# - 将整数转换为字节但不溢出

c# - 为什么通用类型定义实现的接口(interface)会丢失类型信息?

c# - APK 包不在 ASP.NET Core MVC 中提供

.net - 为 DataGridView 着色以直观地查看单元格值的整个分布的算法