用户有一个List<Call> CallsToMake
每个调用都有一个属性DateTime TimeStamp
。通过LINQ查询获取具有最短日期时间的行
我尝试获得具有最早(最小)时间的Call
。我见过的例子显示如何获得最小TimeStamp
,但我不知道如何获得最小TimeStamp
Call
。
我不知道在这里补充:由TimeStamp
user.CallsToMake.Where(call => call.TimeStamp)
用户有一个List<Call> CallsToMake
每个调用都有一个属性DateTime TimeStamp
。通过LINQ查询获取具有最短日期时间的行
我尝试获得具有最早(最小)时间的Call
。我见过的例子显示如何获得最小TimeStamp
,但我不知道如何获得最小TimeStamp
Call
。
我不知道在这里补充:由TimeStamp
user.CallsToMake.Where(call => call.TimeStamp)
排序调用和选择第一个:
Call firstCall = user.CallsToMake.OrderBy(i => i.TimeStamp).FirstOrDefault();
您还可以使用Aggregate
,从而获得所需的值不排序:
Call firstCall = user
.CallsToMake
.Aggregate((min, current) =>
(current.TimeStamp < min.TimeStamp ? current : min)
);
[Enumerable.OrderBy](http://msdn.microsoft.com/en-us/library/vstudio/bb534966%28v=vs.100%29.aspx) – 2014-09-12 15:35:22
@h uMptyduMpty:没有必要对整个集合进行排序,只是为了获得具有最小值的项目。你可以一次完成。 – 2014-09-12 15:36:21
@JonSkeet:当然,我没有想到。谢谢! – 2014-09-12 15:37:12