[英]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.