我有一个大问题。
我有一个TaskGroup对象。每个TaskGroup都有:一个“ Task”对象和一个List <TaskGroup>。(其中包含其自身的对象列表)。它应该是一棵树。
具有一个其中包含“列表”的“ TaskGroup”对象。我需要从“任务组”列表中每个对象的“任务”对象中获取最大的Date值。
public class TaskGroup
{
public ProjectTask Task { get; set;}
public List<TaskGroup> ChildTask { get; set; } = new List<TaskGroup>();
}
public class Task
{
public int Id { get; set;}
public DateTime Date { get; set; }
}
在图表中-使用“我的对象”时,我必须获得以红色标记的最大日期。
有谁知道如何做到这一点?谢谢
要从直子获得最大的日期,您可以使用简单的Linq语句:
var maxDate = taskGroup.ChildTask.Max(c => c.Task.Date);
要从主taskGroup下的所有taskGroups获取最大日期,您可以递归检查所有子项的最大日期:
static DateTime GetMaxDate(TaskGroup group)
{
if (group == null) return DateTime.MinValue;
var maxDate = group.Task?.Date ?? DateTime.MinValue;
foreach (var child in group.ChildTask)
{
if (child.Task?.Date > maxDate) maxDate = child.Task.Date;
foreach (var taskGroup in child.ChildTask)
{
var childMax = GetMaxDate(taskGroup);
if (childMax > maxDate) maxDate = childMax.Date;
}
}
return maxDate;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句