我有一个列表,每个一个"事件"的列表中的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)
我怎样才能找到最老 DateTime的events.
我试图结合级联OrderByDescending().First()找到列表中最老的......但没有运气
(请使用LINQ的方法语法;-) Thanx)
尝试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)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |