gpt4 book ai didi

linq - 嵌套集合的 OrderBy 父对象

转载 作者:行者123 更新时间:2023-12-04 17:25:07 25 4
gpt4 key购买 nike

简单的

public class TimeLine
{
public String Name {get;set}
public List<Milestone> MilesStones {get;set}
}

public class Milestone
{
public String Name {get;set}
public DateTime Time {get;set}
}

我试过: from t in DataAccess.TimelineCollection.OrderBy(c=>c.MilesStones.OrderBy(z=>z.MilestoneDate)) select t;但收到“至少一个对象必须实现 IComparable”的错误消息。

我需要通过 Milestone.Time 订购 TimeLine。列表中的第一个项目将是在 Milestone 集合中具有最新时间属性的项目。

需要帮助链接。

最佳答案

听起来你可能想要

var query = DataAccess.TimelineCollection
.OrderBy(t => t.MileStones.Min(m => m.Time));

换句话说,对于每个 TimeLine ,找到最早的里程碑,并将其用于排序。

当然,如果里程碑是有序的,你可以使用:
var query = DataAccess.TimelineCollection
.OrderBy(t => t.MileStones.First().Time);

如果有的话,这两个都会失败 TimeLine没有里程碑。

关于linq - 嵌套集合的 OrderBy 父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com