我有一个obect列表,每个对象有一个TimeSpan属性reprsenting时间.我需要得到一个时间最接近输入值的对象.
应该看起来像这样..
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)
Run Code Online (Sandbox Code Playgroud)
这有什么优雅的方式吗?
编辑:当然,列表应该通过,抱歉.