查找数组中最接近的值

2023-12-15

int[] array = new int[5]{5,7,8,15,20};

int TargetNumber = 13;

对于目标数字,我想找到数组中最接近的数字。例如,当目标数字为 13 时,上面数组中最接近它的数字是 15。我如何在 C# 中以编程方式实现这一目标?


编辑:已调整以下查询以转换为使用long算术,这样我们就可以避免溢出问题。

我可能会用MoreLINQ's MinBy method:

var nearest = array.MinBy(x => Math.Abs((long) x - targetNumber));

Or you could只需使用:

var nearest = array.OrderBy(x => Math.Abs((long) x - targetNumber)).First();

...但这将对整个集合进行排序,而您确实不需要。对于一个人来说不会有太大区别small数组,诚然......但与描述你的内容相比,它感觉不太正确actually尝试做:根据某个函数找到具有最小值的元素。

请注意,如果数组为空,这两种方法都会失败,因此您应该首先检查这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找数组中最接近的值 的相关文章

  • 解决方案将无法构建,因为它无法从服务生成的类型转换为我的类型

    我有一个 WCF 服务项目 它构建得很好 可以生成可访问的 WSDL 并且 svcutil exe 不会生成任何错误 我有一个访问该 Web 服务的 服务管理器 项目 并且我已成功向其中添加了服务引用 ABCService 第三个项目包含我
  • 在 C# 中,为什么从列表创建 HashSet 比从 HashSet 开始更快?

    我有一个方法 它采用上限 并返回达到该限制的素数列表 public static List
  • 提升解析器中的 Spirit 段错误

    我一直在尝试将我在本科编译器中编写的一些 lex 和 yacc 代码转换为精神代码以学习精神 我发现了一个我似乎无法弄清楚的段错误 我这样写了词法分析器 namespace lex boost spirit lex enum Tokens
  • 从 C 调用带有字符串参数的 Go 函数?

    我可以从 C 调用一个没有参数的 Go 函数 按照下面的 https github com joeprivacy crefgo hello world 这通过编译go build和打印 Hello from Golang main func
  • 使用 Xlib 捕获鼠标

    我想编写一个简单的 Xlib 程序来改变鼠标行为 举个例子 反转垂直移动 我在捕获事件时遇到问题 我想要代码 捕获控制器位置的变化 我向上移动鼠标 MotionEvent 计算新的光标位置 new x difference x 设置新的光标
  • 使用 Mono Cecil 添加 try-catch

    我正在使用 Mono Cecil 在另一个方法中注入代码 我想在我的代码周围添加一个 Try Catch 块 所以我写了一个带有 try catch 块的 HelloWorld exe 并反编译了它 Try Catch 的 Reflecto
  • 测试 WebApi 控制器时如何生成 Asp.net 用户身份

    我正在使用 Web API 2 在 web api 控制器中我使用过GetUserId使用 Asp net Identity 生成用户 ID 的方法 我必须为该控制器编写 MS 单元测试 如何从测试项目访问用户 ID 我在下面附上了示例代码
  • 如何以编程方式区分不同的 IOException?

    我正在对写入 Process 对象的 StandardInput 流的代码进行一些异常处理 Process 有点像 unix head 命令 它只读取输入流的一部分 当进程终止时 写入线程会失败并显示 IOException The pip
  • 如何在MVVM架构中将animationview play与LottieForms绑定?

    所以我在列表视图中处理动画 并且我想随时播放一次 所以我想控制它 这是图书馆https github com martijn00 LottieXamarin https github com martijn00 LottieXamarin
  • fgets 和 fread 之间的区别

    我有以下代码 include
  • 为 C# 和 C++ 应用程序编写 DLL

    我需要编写几个 DLL 它们都可以从 C 应用程序和 C 应用程序访问 最初 我认为通过用 C 编写 DLL 并从 C 和 C 应用程序链接到它们可以节省时间 精力 这种方法明智吗 还是应该使用 C 编写 DLL 我的建议是在您最舒服的地方
  • 如何声明和定义具有推导类型的静态成员?

    我需要定义一个具有复杂 许多模板参数 类型的静态成员 不是 constexpr 因此 希望有这样的东西 struct X static auto x makeObjectWithComplexType 但它不是 C 所以我尝试解决它 并认为
  • 正确重载 stringbuf 以替换 MATLAB mex 文件中的 cout

    MathWorks 目前不允许您使用cout当 MATLAB 桌面打开时 从 mex 文件中读取 因为它们已重定向 stdout 他们当前的解决方法是提供一个函数 mexPrintf 他们要求你改用 http www mathworks c
  • 何时使用 const char * 何时使用 const char[]

    我知道它们是不同的 我知道它们有何不同 并且我阅读了我能找到的所有关于char vs char 但所有这些答案都没有告诉我们什么时候应该使用它们 所以我的问题是 你什么时候使用 const char text text 你什么时候使用 co
  • 字典条目被覆盖? [复制]

    这个问题在这里已经有答案了 我发现一些输入没有存储在 Python 3 的字典中 运行这段代码 N int input How many lines of subsequent input graph for n in range N st
  • OledbConnection.Dispose() 是否关闭连接? [复制]

    这个问题在这里已经有答案了 可能的重复 如果使用 using 子句 是否需要关闭 DbConnection https stackoverflow com questions 12033998 is there any need to cl
  • 引用计数类和多线程

    我是多线程编程的新手 对此我仍然感到困惑 下面是我的引用计数类 class Rbuffer private char m pnData volatile unsigned int mRefCount public Rbuffer int n
  • ASP.Net Core 中没有智能感知

    通过 Visual Studio 安装 ASP Net Core gt 新项目 gt Web gt ASP Net Web 应用程序 gt 确定 gt ASP Net 5 模板 安装后重新启动系统 然后创建一个新项目ASP NET 5 Te
  • C++ 模板类问题中的类型条件

    使用海湾合作委员会4 2 我有这个条件类型的元模板 template
  • Phong 着色问题

    我正在根据以下内容编写着色器冯模型 http en wikipedia org wiki Phong reflection model 我正在尝试实现这个方程 其中 n 是法线 l 是光线方向 v 是相机方向 r 是光反射 维基百科文章中更

随机推荐

  • 当 WIFI 网络没有互联网连接时,.net 或 Xamarin 互联网可用性检查

    我知道如何检查设备是否有可用的互联网连接是一个大讨论 我尝试了 Ping WebClient 和 HTTPClient 我还使用 Xamarin Essentials 和连接插件 所有这些事情都有效 只需向谷歌或您选择的服务器发出请求 您就
  • Android:Vimeo 视频无法在 webview 中播放

    我必须在 webview 中播放 vimeo 视频 请考虑以下代码 当我播放它时 它只播放音频 但视频是黑色的 我正在使用下面的代码 WebSettings s wv getSettings wv setWebChromeClient ne
  • 有没有办法去掉重音符号并将整个字符串转换为常规字母?

    除了使用之外 是否有更好的方法来消除重音并使这些字母变得规则String replaceAll 方法并一一替换字母 例子 Input or p s d Output orcpzsiayd 它不需要包含所有带有重音符号的字母 例如俄语字母表或
  • C# 中字符串的第一个单词

    如何获取字符串的第一个单词 string test hello world I used test Split FirstOrDefault 但它返回 hello 我可以尝试将分隔符添加为逗号 但即使有逗号或空格 我也只需要单词 hello
  • 如何使用 GNU GAS 或 LLVM 汇编 ARM SVE 指令并在 QEMU 上运行?

    我想玩新的ARM SVE指令使用开源工具 首先 我想组装一个最小的示例 https developer arm com docs dui0965 latest getting started with the sve compiler as
  • Tesseract + opencv 3.0 + windows,文本模块尺寸小,链接错误

    我两天前在answers opencv org 上发布了这篇文章 现在我也将其发布在这里 http answers opencv org question 68634 text contrib module and tesseract 大家
  • 将窗口对象存储在本地存储中

    我需要能够保留窗口对象 我尝试对窗口对象进行字符串化 但在尝试将窗口对象转换为 JSON 时收到错误 将循环结构转换为 JSON 错误 无论如何 我可以将 window open 中的窗口对象存储在本地存储中吗 var myWindow w
  • 将列附加到 pandas 数据框

    这可能很简单 但我有以下数据 在数据框 1 中 index dat1 0 9 1 5 在数据框 2 中 index dat2 0 7 1 6 我想要一个具有以下形式的数据框 index dat1 dat2 0 9 7 1 5 6 我尝试过使
  • 在 C++ 中创建稀疏数组的最佳方法是什么?

    我正在研究一个需要操作巨大矩阵的项目 特别是用于连接计算的金字塔求和 简而言之 我需要跟踪矩阵 多维数组 中大量零的相对少量的值 通常为 1 在极少数情况下超过 1 稀疏数组允许用户存储少量值 并假设所有未定义的记录都是预设值 由于物理上不
  • PHP 显示中文字符:SET NAMES 'utf8' 不起作用

    我正在尝试使用我拥有的数据库 但无法在其中显示中文字符 数据库实际上首先是一个 MS Access 文件 我用程序将其转换为 mysql 无论如何 很多行中都有中文字符 我无法让它们在任何浏览器中正确显示 否则我可以很好地显示汉字 如果我使
  • 配置旁遮普向 Openfire 发送 xmpp 请求

    我正在尝试将旁遮普连接管理器与 Openfire 一起使用 我已经有一个正在运行的 Openfire 服务器 我还安装了 punjab 并且服务器正常启动 允许我导航到本地主机上的端口 5280 虽然http localhost 5280
  • 将整数和文本字符串等数据从手机发送到网络数据库

    我有一个项目 我应该将整数 浮点数和文本字符串等数据从 Android 应用程序发送到 Web 数据库 但是我不知道如何做到这一点 有人可以解释一下吗 任何建议或帮助将不胜感激 您需要编写一些服务器端逻辑 通过POST或GET方法接受参数k
  • 使用角度2中的viewchild更新元素的innerhtml

    我有像这样的html元素 section class span title span span class value span section 我使用访问组件中的元素 ViewChild hiddenElement hiddenEleme
  • 在 ftp 服务器中不递归地列出文件、目录、子文件和子目录的想法

    我正在尝试生成 ftp 服务器中给定目录及其子目录的文件列表 服务器工作正常 我已经成功地生成了当前目录的文件列表 当我尝试列出子目录及其文件时 事情就变得复杂了 我被要求不要使用递归算法 所以我自己做了一些研究 我尝试过使用线程 对于找到
  • FutureTask 获取与运行,任务永远不会完成

    我正在学习 Callables 并决定制作一个非常简单的程序 问题是当我调用 getFutureTask 时线程被阻塞 Thread State TIMED WAITING 在对象监视器上 您能否告诉我为什么会这样以及为什么当我在 futu
  • 替换字符串中字符的实例

    这个简单地尝试用冒号替换分号 在特定位置 的简单代码不起作用 for i in range 0 len line if line i and i in rightindexarray line i 它给出了错误 line i TypeErr
  • 当“OrdinalBase”字段设置为 1 时,“kernel32.dll”如何导出序数 0?

    查看加载到内存中的 kernel32 dll 我看到以下导出序数表 gdb x 400hd eax 0x776334b0
  • 通过 shell 脚本拒绝 cat 的权限[重复]

    这个问题在这里已经有答案了 我在 bin rclone sync ACD log 中的日志文件上的 shell 脚本中运行 cat 时遇到问题 这是 shell 脚本中的行 RESULT cat LOGFILE tail 1 但是当运行脚本
  • 时区代码到时区信息

    在我们的 MS Dynamics CRM 项目中 我们创建了一个海量用户上传批次 该批处理从 Excel 文件读取并批量上传用户 该批次需要设置的内容之一是时区代码 在 Excel 文件中 时区将写为 UTC 1 CRM 使用的代码似乎是
  • 查找数组中最接近的值

    int array new int 5 5 7 8 15 20 int TargetNumber 13 对于目标数字 我想找到数组中最接近的数字 例如 当目标数字为 13 时 上面数组中最接近它的数字是 15 我如何在 C 中以编程方式实现