C# 与Linq一起获得父母的“最低”日期-曾孙子女

C# 与Linq一起获得父母的“最低”日期-曾孙子女,c#,linq,C#,Linq,我正在努力学习LINQ-艰苦的方式。 我有几个实体,它们都是按顺序连接的 部门->小组->工程->项目 项目有开始日期和结束日期 我正试着用第一个开始日期来获取团队的开始日期 我试过: Department.Groups.Selectg=>g.Works.Selectw=>w.project.StartDate.Min 及其各种变体。 问题是它返回一个列表中的一个列表中的一个列表,我一想到它就感到头晕目眩: 我试着从一开始就倒行逆施 g、 Works.Selectw=>w.Project.Sta

我正在努力学习LINQ-艰苦的方式。 我有几个实体,它们都是按顺序连接的 部门->小组->工程->项目 项目有开始日期和结束日期

我正试着用第一个开始日期来获取团队的开始日期

我试过: Department.Groups.Selectg=>g.Works.Selectw=>w.project.StartDate.Min

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

我试着从一开始就倒行逆施 g、 Works.Selectw=>w.Project.StartDate.Min,它为我提供了最短的工作日期 非常感谢您提供的任何帮助

请使用以下方法展平您的列表,然后应用:

这将返回所有组下所有工程的最短日期

将列表展平,然后应用最小值,如:


这将返回所有组下所有工程的最短日期

如果您只想知道日期,那么Habib的展平解决方案很好。如果您想要整条记录,您可以订购,然后购买第一条记录,如下所示:

Department
  .Groups
  .OrderBy(g => g.Works.Select(w => w.project.StartDate))
  .FirstOrDefault()

如果你只想知道日期,那么Habib的扁平化解决方案是很好的。如果您想要整条记录,您可以订购,然后购买第一条记录,如下所示:

Department
  .Groups
  .OrderBy(g => g.Works.Select(w => w.project.StartDate))
  .FirstOrDefault()

那么这会让他们成为曾孙吗?你不想点菜,然后吃第一个吗?那会让他们成为曾孙吗?你不想点菜,然后吃第一个吗?如果我再加一个孩子-我只需要再选择多个-对吗很好,快速回答顺便说一句,我会接受的can@VisualBean,如果添加另一个子项会给您另一个嵌套列表,则使用。基本上,SelectMany会使列表变得平坦,因此在列表的情况下,您将以List@Habib例如我会忽略它。这里有另一个人,他给出了和你一样的确切答案,并被要求这样做。这可能是报复性的否决票。@MyCodeSucks,我不认为这是报复性的否决票,答案是在否决票之后公布的如果我再加上一个孩子,我只需要再选择一次,对吗很好,快速回答顺便说一句,我会接受的can@VisualBean,如果添加另一个子项会给您另一个嵌套列表,则使用。基本上,SelectMany会使列表变得平坦,因此在列表的情况下,您将以List@Habib例如我会忽略它。这里有另一个人,他给出了和你一样的确切答案,并被要求这样做。这可能是报复性的否决票。@MyCodeSucks,我不认为这是报复性的否决票,答案是在否决票之后公布的集合中的OrderBy?不确定这是否能按预期工作。是否对集合使用OrderBy?我真的不确定这是否会像预期的那样起作用。