我有一个列表对象,我们称之为“父”。在Parent a中有几个“Child”对象。在“Child”中,我有一个名为StartDay的DateTime属性。
我想运行一个linq查询,该查询将检查Parent并返回StartDay的星期几(如果它始终是一周中的同一天)。例如,如果我们在周三有一些StartDay,有些在星期二它会返回“变量”。
答案 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" });