gpt4 book ai didi

c# - 获取数组中最接近的值

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:40 27 4
gpt4 key购买 nike

int [] testArray = new int[3] { 5, 7, 8};

int check = 22;

var nearest = testArray.Min(x => Math.Abs(x - check));

Debug.Print(Convert.ToString(nearest));

我将上面的代码尝试获取数组中最接近支票号码的数字,在本例中为 22。

问题是,由于 Math.Abs​​,这总是返回一个正值,但如果我删除它,代码将完全失败。例如,如果支票号码是 10,我希望最接近返回 -2 而不是 2。这样我可以将最接近的值添加到支票号码以获得数组中的正确值。

我在搜索时发现了一些类似的东西,一个叫做 MoreLinq 的东西,它建议改用 array.MinBy,但是这个方法会抛出一个错误(说它不存在)......谢谢

最佳答案

我建议对 min 进行第一个排序并取第一个值。这是你最接近的值(value),你可以用它做你想做的事。例如计算nearest-check

int[] testArray = new int[3] { 5, 7, 8 };

int check = 22;

var nearest = testArray.OrderBy(x => Math.Abs(x - check)).First();

Debug.Print(Convert.ToString(nearest-check));

关于c# - 获取数组中最接近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41277957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com