如何从列表中获取最接近的数字 与LINQ?

如何List<int>使用LINQ 从a获得最接近的数字?

例如:

List<int> numbers = new List<int>();

numbers.Add(2);

numbers.Add(5);

numbers.Add(7);

numbers.Add(10)

我需要在列表中找到最接近9的值。在这种情况下,是10。

如何使用LINQ做到这一点?

回答:

如果您使用LINQ to

Objects并且列表很长,我将使用:

List<int> list = new List<int> { 2, 5, 7, 10 };

int number = 9;

int closest = list.Aggregate((x,y) => Math.Abs(x-number) < Math.Abs(y-number) ? x : y);

这种方法比Anthony

Pegram建议的解决方案稍微复杂一些,但是它的优点是您不必先对列表进行排序。这意味着您的时间复杂度为,O(n)O(n*log(n))内存使用量O(1)O(n)

以上是 如何从列表中获取最接近的数字 与LINQ? 的全部内容, 来源链接: utcz.com/qa/412686.html

回到顶部