简体   繁体   English

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

[英]Get minimum and maximum time value from list of object property using Linq

I have settings object with property 我有属性的设置对象

class Settings
{
    DateTime StartTime;
    DateTime EndTime;
}

and I have created a list of this setting object. 我已经创建了这个设置对象的列表。

How can I get the MaxTime and MinTime from the collection of objects using LINQ? 如何使用LINQ从对象集合中获取MaxTime和MinTime?

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

This returns the lowest and highest times. 这将返回最低和最高时间。 Other answers are telling you how to get the difference between max and min, which does not appear to be what you asked for. 其他答案告诉你如何获得最大和最小之间的差异,这似乎不是你要求的。

Assuming you want a minimum and maximum of the time deltas: 假设您想要最小和最大时间增量:

Settings[] settings = ...;

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

Do it like this 像这样做

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM