C# 笨拙Linq排序

C# 笨拙Linq排序,c#,linq,C#,Linq,我有一个Foo对象列表: List<Foo> Foo本身包含一个Bar属性,其中包含一个BAZ列表,这些BAZ具有名为DateOccurd的DateTime属性: public class Foo { public Bar Bar { get; set; } } public class Bar { public List<Baz> Baz { get; set; } } 是否可以根据DateOccurrent属性的最早值对我的foo列表进行排序 var

我有一个Foo对象列表:

List<Foo>
Foo本身包含一个Bar属性,其中包含一个BAZ列表,这些BAZ具有名为DateOccurd的DateTime属性:

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

public class Bar
{
   public List<Baz> Baz { get; set; }
}
是否可以根据DateOccurrent属性的最早值对我的foo列表进行排序

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());
如果您想在每个Baz列表中按最短时间订购,您可以执行以下操作:

var ordered = fooList
    .OrderBy(f => f.Bar.Bazs.Select(b => b.DateTime).Min());