c# - 使用 Linq 获取 parent 曾孙的 "lowest"日期

标签 c# linq

我正在努力学习 LINQ - 困难的方法。 我有一些实体,它们都是按顺序连接的 部门 -> 小组 -> 作品 -> 项目 项目有开始日期(和结束日期)

我正在尝试使用第一个开始日期来获取群组的开始日期。

我试过: Department.Groups.Select(g => g.Works.Select(w => w.project.StartDate).Min())

及其各种变体。 问题是它在列表中的列表中返回列表,我一想到它就头晕 :)

我试着从 g.Works.Select(w=> w.Project.StartDate).Min() 这给了我最低的 Works 日期 非常感谢任何帮助

最佳答案

SelectMany 扁平化你的列表然后像这样应用 Min:

var minDate = Department.Groups
                 .SelectMany(g => g.Works.Select(w => w.project.StartDate))
                 .Min();

这将返回所有 Groups 下所有 Works 的最短日期。

关于c# - 使用 Linq 获取 parent 曾孙的 "lowest"日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996853/

相关文章:

c# - 使用 LINQ 对 ID、EmailListID、PhoneListID 等进行分组

C# 字典映射

c# - 是否可以使用 LINQ 跨不同数据库执行连接?

c# - 如何使用where条件

c# - C# 中的 Switch case - 需要一个常量值

c# - 使用 SQL 存储过程和 C# 读取大量数据 (SQL Server 2005)

c# - 使用 iTextSharp 禁用扩展功能

c# - 通过 C# 连接到 Informix

c# - Windows Phone 8 - 内存分析器丢失

c# - LINQ to SQL 关联映射