私の同僚の一人は、指定された値のリストから前後の値を取得するようなものを探していました。私は働いているGoogleの助けを借りて少し機能を書いたが、私は を見たいと思っていた1.これはこれを行う効率的な方法は? 2.これを行うためのLINQの方法は他にありますか?ちょうど単一の項目は私が不審になるだろう見つけるために発注LINQを使って前と次の要素を取得する
private static List<double> GetHighLow(double value)
{
List<double> tenorList = new List<double> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 20, 30 };
double previous = tenorList.OrderByDescending(s => s).Where(s => s.CompareTo(value) < 0).FirstOrDefault();
double next = tenorList.OrderBy(s => s).Where(s => s.CompareTo(value) > 0).FirstOrDefault();
List<double> values = new List<double> { previous, next };
return values;
}
おかげ 朴
は既にソートされていることが保証されているソースリストですか? – AakashM
これについてのブログを少し前に書きました。 http://trikks.wordpress.com/2011/12/01/getting-the-previous-and-next-record-from-list-using-linq/ –
@Trikksはい、あなたの解決策はよりクリーンです。共有してくれてありがとう。 – Pak