只有当它小于x时,才能找到最接近x的值

时间:2012-01-30 00:53:45

标签: c# linq

我有一系列双打。如何在不高于输入值的情况下找到最接近某个输入值的值。

4 个答案:

答案 0 :(得分:3)

在C#中使用LINQ

// Assuming values is IEnumerable<double>
values = values.Where(v => v <= input);

return values.Any() ? values.Max() : resultWhenInputTooSmall;

答案 1 :(得分:0)

public static int checkClosest(int target)
{
    int closestVal = 0;

    for(int i = 0; i < thing.length; i++)
        if(thing[i] < target && thing[i] > closestVal) closestVal = thing[i];
    return closestVal;
}

答案 2 :(得分:-1)

在CSharp中,您可以使用linq更轻松地实现它。

var result = doubleArray.Where(p => p < inputValue).OrderByDescending(p => p).FirstOrDefault();

答案 3 :(得分:-2)

首先对它们进行排序(很多方法)。然后二进制搜索您要查找的号码。