LINQ для получения ближайшего значения?

У меня есть список, MyStuff имеет свойство типа Float.

Есть объекты со значениями свойств 10 , 20,22,30.

Мне нужно написать запрос, который находит объекты, наиболее близкие к 21, в этом случае он найдет объекты 20 и 22. Затем мне нужно написать такой, который находит, что объект закрывается до 21 без перехода, и он вернет объект со значением 20.

Я понятия не имею, где / как начать с этого. Помогите?

Спасибо.

Обновление - вау, здесь так много замечательных отзывов. Спасибо! Я не знаю, какой из них следовать, поэтому попробую их все. Одна вещь, которая может сделать это более (или менее) интересным, заключается в том, что тот же запрос должен будет применяться к объектам LINQ-to-SQL, так, возможно, лучше всего подойдет ответ, полученный на форумах MS Linq? Не знаю.

32
задан Sam Axe 3 November 2011 в 16:53
поделиться