如何从a中获取最接近的数字List<int>
与 LINQ?
例如:
List<int> numbers = new List<int>();
numbers.Add(2);
numbers.Add(5);
numbers.Add(7);
numbers.Add(10)
我需要在列表中找到最接近数字 9 的值。在本例中为 10。
我怎样才能用 LINQ 做到这一点?
如果你使用LINQ 到对象列表很长,我会使用:
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)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)