0

我有一个 Foo 对象列表:

List<Foo>

Foo 本身包含一个 Bar 属性,该属性包含一个 Baz 列表,这些 Baz 具有名为 DateHappened 的 DateTime 属性:

public class Foo
{
   public Bar Bar { get; set; }
}

public class Bar
{
   public List<Baz> Baz { get; set; }
}

是否可以根据 DateHappened 属性的最早值对我的 Foos 列表进行排序?

4

2 回答 2

4
var ordered = fooList.OrderBy(f => f.Bar.Baz.Min(b => b.DateHappened));
于 2013-03-05T18:47:15.693 回答
0
var ordered = fooList
    .SelectMany(f => f.Bar.Bazs.Select(b => new { Foo = f, DT = b.DateTime }))
    .OrderBy(fd => fd.DT)
    .Select(fd => fd.Foo);

如果您想按每个Baz列表中的最短时间订购,您可以执行以下操作:

var ordered = fooList
    .OrderBy(f => f.Bar.Bazs.Select(b => b.DateTime).Min());
于 2013-03-05T18:34:50.157 回答