c# - 如何在双数组中找到最近值的索引?
问题描述
我有一个增加双值的数组。如何找出给定双精度的索引?c# 中有“板载”功能还是我必须创建自定义循环?
谢谢帮助
解决方案
假设list
是double
s 的列表,并且您想要找到最接近的列表target
:
var result = list
.Select((d,i) => (d,i))
.OrderBy(x => Math.Abs(x.d-target))
.First();
- 拿双打名单
- 将其转换为元组:双精度值和索引
- 按列表中的双精度和目标之间的绝对差排序
- 获得第一个,其差异最小 = 最接近的值
看实际操作:https ://dotnetfiddle.net/qybj9X
但这忽略了原始列表已经排序的有用事实。
推荐阅读
- flutter - 当 2 个代码并排时出现颤振条码扫描问题
- c# - 如何从 Visual Studio 中找到 c# 项目的类型?
- java - 服务内的线程 - Android 应用程序
- pact - Pact JS - 如何发送请求正文以更改状态?
- javascript - 每次我在它们上放一个可拖动的表格时,表格都会改变行的高度
- javascript - 使用 jQuery 打开一个链接会打开相关的应用程序,但是,继续此操作,会打开一个烦人的 about:blank 页面。我怎样才能阻止这个?
- curl - curl 从命令行工作,但不能在 shell 脚本中工作(curl:(6)无法解析主机:)
- javascript - 向源发送请求时出错。Apollo Engine 如何配置 apollo engine origins?
- angular - 管道日期角度“无法转换”时间戳“
- c# - WebClient 下载“听起来相似”的文件