2013-04-03 50 views
3

Simplying問題陳述列出爲int,可以說我有這個執行IEnumerable的方法

List<int> range = new List<int>(10) { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; 

用戶輸入24,我需要一個早期的飼用價值爲20,後期飼用價值爲30個
用戶輸入99,我需要一個早期飼料值90和延遲進料的值作爲100
的用戶輸入20,我需要一個早期飼料值爲20和延遲進料值爲20

是否有蘭巴表達或LINQ語句來獲得這種結果。

我真正的投入不是INT的名單,我剛纔運動簡化它,更熱衷於蘭巴或LINQ表達式得到的結果

+0

輸入是否總是排序? –

+0

如果用戶輸入-10或10,該怎麼辦? –

+1

你有試過什麼嗎? –

回答

10

如何

range.Where(i => i <= UserInput).Max(); 

range.Where(i => i >= UserInput).Min(); 

或者

range.Max(i => i <= UserInput); 
range.Min(i => i >= UserInput); 
+0

良好的開端,但是,您需要添加值爲20的規則 –

+4

@Vash:已經存在。 –

+5

這可以簡化爲:'Where().Max/Min()'相當於'Max/Min()'。 –