使用Linq从对象属性列表中获取最小和最大时间值

时间:2011-02-04 06:52:55

标签: c# linq collections

我有设置对象属性

class Settings
{
    DateTime StartTime;
    DateTime EndTime;
}

我创建了一个这个设置对象的列表。

如何使用LINQ从对象集合中获取MaxTime和MinTime?

3 个答案:

答案 0 :(得分:12)

var minStartTime = settings.Min(setting => setting.StartTime);    // returns 8am
var maxEndTime = settings.Max(setting => setting.EndTime);        // returns 5pm

返回最低和最高时间。其他答案告诉你如何获得最大和最小之间的差异,这似乎不是你要求的。

答案 1 :(得分:2)

假设您想要最小和最大时间增量:

Settings[] settings = ...;

var max = settings.Max(s => s.EndTime - s.StartTime);
var min = settings.Min(s => s.EndTime - s.StartTime);

答案 2 :(得分:1)

这样做

var max = (from item in myList
      select item.StartTime - item.EndTime).Max()

var min = (from item in myList
      select item.StartTime - item.EndTime).Min()