我有一个对象列表,每个对象都有一个 TimeSpan 属性代表一天中的时间。我需要得到一个时间最接近输入值的对象。
应该是这样的。。
List<MyClass> list = new List<MyClass>
{
new MyClass() {Name="midnight", time= new TimeSpan(0,0,0)},
new MyClass() {Name="noon", time= new TimeSpan(12,0,0)},
};
var testOne = GetClosest(new TimeSpan(2, 0, 0),list); // returns midnight
var testTwo = GetClosest(new TimeSpan(8, 0, 0),list); // returns noon
var testThree = GetClosest(new TimeSpan(13, 0, 0),list); // returns noon
var testFour = GetClosest(new TimeSpan(22, 0, 0),list); // returns midnight (that's the tricky one)
有没有一些优雅的方式来做到这一点?
编辑:当然应该通过列表,抱歉。