2013-04-03 52 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()'。 –