Owa*_*med 6 c# linq enumeration list closest
我有一个数字列表,我想找到最接近四个数字的搜索号码.
例如,如果搜索号是400000,并且列表是:{150000, 250000, 400000, 550000, 850000, 300000, 200000),那么最接近的4个数字将是:
{300000, 400000, 250000, 550000}
Run Code Online (Sandbox Code Playgroud)
任何帮助或建议将不胜感激.
Mis*_*akw 15
您可以使用OrderBy按每个项目与搜索项之间差异的绝对值来对列表进行排序,以便有序列表中的第一项最接近您的编号,最后一项距离该编号最远.然后,您可以使用Take扩展方法获取所需的项目数:
var list = new List<long> {150000, 250000, 400000, 550000, 850000, 300000, 200000};
var search = 400000;
var result = list.OrderBy(x => Math.Abs(x - search)).Take(4);
Console.WriteLine(string.Join(", ", result));
Run Code Online (Sandbox Code Playgroud)
输出: {400000, 300000, 250000, 550000}
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |