【发布时间】:2014-12-23 00:18:04
【问题描述】:
我知道以前有人问过这个问题,但其他问题只是关于查找 CLOSEST。我不想要那个。我需要两个值之间的最低值。例如,如果这是列表: 来自How to get the closest number from a List<int> with LINQ?的代码:
List<int> numbers = new List<int>();
numbers.Add(2);
numbers.Add(5);
numbers.Add(7);
numbers.Add(10)
要找到的数字是 9,我希望它返回第 7 个项目,而不是 10,即使它更接近。此代码找到最接近的,但任何时候我更改它以找到范围内的最低值,它会在输入数字是列表中的数字之一(例如 7 或 10)的其他情况下中断:
list.Aggregate((x,y) => Math.Abs(x-number) < Math.Abs(y-number) ? x : y);
如何更改该代码以支持我需要做的事情?
我知道我可以使用二进制搜索...我不想使用它,如果可能的话我想使用 linq。
【问题讨论】: