C# 确定字典中的值

标签 c# dictionary

我有一本字典first<string, double> double 值的范围在 0 到 1 之间,我想制作另一个只包含 10 个值的字典,但那些距离 0.5 最远的值。首先,我正在考虑制作字典 asc/desc,但是如果这些值在 desc 中是 10 x 0.9,并且在 0.45 左右怎么办。按 asc 顺序,那么我只想获得更高的值,因为 0.45 距离 0.5 仅 0.05,而 0.9 距离中心 0.4。

字典里有没有办法做到这一点,或者我需要像这样循环编码:

abs(first.Value - 0.5) 然后用相同的键将这个值添加到新字典中并使用 .Take(10) ?

最佳答案

var second = first.OrderByDescending(kvp => Math.Abs(kvp.Value - 0.5))
                  .Take(10)
                  .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

关于C# 确定字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30142580/

相关文章:

python - 如何使用python在mysql中插入python dict的键和值

c# - 如何从 c# Xamarin android 中的浏览器链接打开应用程序?

c# - 解析 XML 文件中的两条连续记录

位图中的 C# 内存泄漏

html - 如何使用 thymeleaf 在 HTML5 中显示 map 值列表

python - 带有键列表的快速字典填充

c# - Entity-framework-7 将 Fluent API 配置组织到一个单独的类中

c# - BundleConfig.cs 没有引用任何内容?

c++ - 值类型在map中的地址

java - 用数字替换符号