簡體   English   中英

C#linq列表找到最接近的數字

[英]C# linq list find closest numbers

我有一個數字列表,我想找到最接近四個數字的搜索號碼。

例如,如果搜索號為400000且列表為: {150000, 250000, 400000, 550000, 850000, 300000, 200000) ,則最接近的4個數字將為:

{300000, 400000, 250000, 550000}

任何幫助或建議將不勝感激。

您可以使用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));

輸出: {400000, 300000, 250000, 550000}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM