【发布时间】:2015-07-20 11:26:06
【问题描述】:
我有一个字典first<string, double>,其双值范围在 0 到 1 之间,我想制作另一个只包含 10 个值的字典,但那些值与 0.5 最远。首先,我正在考虑制作字典 asc/desc,但如果这些值在 desc 中为 10 x 0.9,大约为 0.45,该怎么办。按升序排列,那么我只想获得更高的值,因为 0.45 距离 0.5 仅 0.05,而 0.9 距离中心 0.4。
字典中有什么方法可以做到这一点,或者我需要像这样循环编码:
abs(first.Value - 0.5) 然后用相同的键将此值添加到新字典中并使用 .Take(10) ?
【问题讨论】:
-
我认为您可以使用 LINQ 浏览字典,按距离排序,然后取 10 使其最简单。字典本身对此没有任何帮助。
标签: c# dictionary