我知道之前已经问过这个问题,但其他问题只是关于找到CLOSEST.我不想那样.我需要两个值之间的最低值.例如,如果这是列表:如何使用LINQ从List <int>获取最接近的数字?:
List<int> numbers = new List<int>();
numbers.Add(2);
numbers.Add(5);
numbers.Add(7);
numbers.Add(10)
Run Code Online (Sandbox Code Playgroud)
找到的数字是9,我希望它返回7项,而不是10项,即使它更接近.此代码找到最接近的,但是每次我更改它以找到它在其中输入的数字是列表中的一个数字之一(例如7或10)的其他情况下中断的最低值:
list.Aggregate((x,y) => Math.Abs(x-number) < Math.Abs(y-number) ? x : y);
Run Code Online (Sandbox Code Playgroud)
如何更改代码以支持我需要做的事情?
我知道我可以使用binarysearch ...我不想使用它,我想尽可能使用linq.
var numbers = new List<int> { 2, 5, 7, 10 };
var seven = numbers.Where(n => n <= 9).Max();
Run Code Online (Sandbox Code Playgroud)