如何按双精度的小数部分对双精度列表进行排序.
例如:对于输入<1.2, 2.3, 1.12, 5.1>,在排序之后,输出应该是<5.1, 1.12, 1.2, 2.3>
suj*_*lil 11
你可以通过OrderBy()和Math.Truncate()方法实现这一点,如下所示.在哪里x-Math.Truncate(x)给出小数点后的数字,并按OrderBy升序排列.看看这个例子,尝试使用以下代码片段
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));
Run Code Online (Sandbox Code Playgroud)
或者你可以试试这个也.OrderBy(x=>x-(int)x)代替了OrderBy(x=>x-Math.Truncate(x)