我怎么能通过c#按零附近的值基础自定义字典?

时间:2017-03-01 05:55:45

标签: c# sorting dictionary

我有一个Dictionary<int, double>,我想自定义排序。但它的排序有点不同。

例如,这里是代码:

Dictionary<int, double> dicZeroPeriods = new Dictionary<int, double>();
dicZeroPeriods.Add (80,-3.5);
dicZeroPeriods.Add (90,-2.4);
dicZeroPeriods.Add (50,4.2);
dicZeroPeriods.Add (65,1.2);

那么如何根据零附近的值基础对dicZeroPeriods进行自定义排序。我的意思是结果应该是:

65,1.2
90,-2.4
80,-3.5
50,4.2

2 个答案:

答案 0 :(得分:4)

只需将OrderByMath.Abs功能一起使用即可。你走了:

dicZeroPeriods = dicZeroPeriods.OrderBy(x => Math.Abs(x.Value))
            .ToDictionary(x => x.Key, x => x.Value);

答案 1 :(得分:0)

使用Math.Abs()按字符串元素的绝对值对字典元素进行排序。 Math.Abs​​(1.2)&lt; Math.Abs​​(-3.5)等等。