linq 仅当值小于x时,查找最接近x的值

bxfogqkk  于 2022-12-15  发布在  其他
关注(0)|答案(4)|浏览(142)

我有一个双精度数组,我怎样才能找到一个最接近某个输入值的值,而又不高于那个输入值呢?

iezvtpos

iezvtpos1#

在C#中使用LINQ

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

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

vfh0ocws2#

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;
}
alen0pnh

alen0pnh3#

在CSharp中,您可以使用linq来更容易地实现它。

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

yqhsw0fo4#

首先对它们进行排序(有很多种方法),然后对你要找的数字进行二进制搜索。

相关问题