简体   繁体   中英

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?

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()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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