如何按 double 的小数部分对 double 列表进行排序。
例如: 对于输入 <1.2, 2.3, 1.12, 5.1>
, 排序后输出
应该是 <5.1, 1.12, 1.2, 2.3>
最佳答案
您可以通过 OrderBy()
和 Math.Truncate()
方法实现,如下所示。 x-Math.Truncate(x)
为您提供小数点后的数字,OrderBy
将按升序排列它们。看看这个example并尝试使用以下代码片段
List<double> input = new List<double>(){1.2, 2.3, 1.12, 5.1};
input = input.OrderBy(x=>x-Math.Truncate(x)).ToList();
Console.WriteLine(String.Join("\n",input));
或者您也可以尝试使用 .OrderBy(x=>x-(int)x)
而不是 OrderBy(x=>x-Math.Truncate(x)
关于c# - 在 C# 中,如何按尾数对 double 列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015292/