首页 > 解决方案 > 如何在双数组中找到最近值的索引?

问题描述

我有一个增加双值的数组。如何找出给定双精度的索引?c# 中有“板载”功能还是我必须创建自定义循环?

谢谢帮助

标签: c#arrays

解决方案


假设listdoubles 的列表,并且您想要找到最接近的列表target

var result = list
              .Select((d,i) => (d,i))
              .OrderBy(x => Math.Abs(x.d-target))
              .First();
  • 拿双打名单
  • 将其转换为元组:双精度值和索引
  • 按列表中的双精度和目标之间的绝对差排序
  • 获得第一个,其差异最小 = 最接近的值

看实际操作:https ://dotnetfiddle.net/qybj9X

但这忽略了原始列表已经排序的有用事实。


推荐阅读