如何获取列表列表中最小的DateTime/Value - 使用LINQ

cop*_*017 -1 c# linq

我有一个列表,每个一个"事件"的列表中DateTimeS,这样的:

var events = new List<Event>(){
  new Event("A"){Occured = new List<DateTime>{"1.1.2018", "3.3.2018"}},
  new Event("B"){Occured = new List<DateTime>{"4.4.2018", "5.5.2018"}}};
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到最老 DateTimeevents.

我试图结合级联OrderByDescending().First()找到列表中最老的......但没有运气

(请使用LINQ的方法语法;-) Thanx)

Dmi*_*nko 5

尝试SelectMany拉平每个事件到内表IEnumerable<DateTime>:

DateTime oldest = events
  .SelectMany(e => e.Occured) // Now we have IEnumerable<DateTime>
  .Min(); 
Run Code Online (Sandbox Code Playgroud)

如果您想要一个具有最早(最短)日期的活动,您可以Aggregate:

var oldestEvent = events
  .Where(s => s.Ocurred.Any()) // To be on the safe side
  .Aggregate((s, a) => s.Ocurred.Min() < a.Ocurred.Min() ? s : a); 
Run Code Online (Sandbox Code Playgroud)