linq查询比较列表中的日期

时间:2015-01-19 16:47:24

标签: linq

我有一个列表对象,我们称之为“父”。在Parent a中有几个“Child”对象。在“Child”中,我有一个名为StartDay的DateTime属性。

我想运行一个linq查询,该查询将检查Parent并返回StartDay的星期几(如果它始终是一周中的同一天)。例如,如果我们在周三有一些StartDay,有些在星期二它会返回“变量”。

2 个答案:

答案 0 :(得分:1)

如果您想检查所有父母的孩子是否拥有相同的StartDay.DayOfWeek

bool allOnSameDay = Parent.All(p => {
     var firstChildDayOfWeek = p.Children.First().StartDay.DayOfWeek;
     return p.Children.All(c => c.StartDay.DayOfWekk == firstChildDayOfWeek);
})

答案 1 :(得分:0)

parents.Where(x => x.Children.Any())
  .Select(x => new { Parent = x, StartDays = x.Children.Select(y => y.StartDay).Distinct() })
  .Select(x => new { x.Parent, StartDay = x.StartDays.Count() == 1 ? x.StartDays.Single().ToString() : "Variable" });