c# – 将值与数组进行比较并获得最接近的值
发布时间:2020-12-16 00:03:50 所属栏目:百科 来源:网络整理
导读:我是C#的新手,我正在努力学习这门语言. 你能不能给我一个提示,我可以比较一个数组与从中选择最低值的数值? 喜欢: Double[] w = { 1000,2000,3000,4000,5000 };double min = double.MaxValue;double max = double.MinValue;foreach (double value in w){ if
我是C#的新手,我正在努力学习这门语言.
你能不能给我一个提示,我可以比较一个数组与从中选择最低值的数值? 喜欢: Double[] w = { 1000,2000,3000,4000,5000 }; double min = double.MaxValue; double max = double.MinValue; foreach (double value in w) { if (value < min) min = value; if (value > max) max = value; } Console.WriteLine(" min:",min); 给我w的最低值,我现在该如何比较? 如果我有: int p = 1001 + 2000; // 3001 我现在如何与数组列表进行比较,发现(3000)值是我的“Searchvalue”的最接近的值? 解决方法
你可以用一些简单的数学来做到这一点,并且有不同的方法.
LINQ Double searchValue = ...; Double nearest = w.Select(p => new { Value = p,Difference = Math.Abs(p - searchValue) }) .OrderBy(p => p.Difference) .First().Value; 手动 Double[] w = { 1000,5000 }; Double searchValue = 3001; Double currentNearest = w[0]; Double currentDifference = Math.Abs(currentNearest - searchValue); for (int i = 1; i < w.Length; i++) { Double diff = Math.Abs(w[i] - searchValue); if (diff < currentDifference) { currentDifference = diff; currentNearest = w[i]; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |