List<decimal> list = new List<decimal>() { 23.346m, 23.56m, 4.2m, 0.90000000000000000000000000000m, 0.59333800m};
Console.WriteLine(list.OrderByDescending( a=>a)
.Max());
如何对该列表进行排序并获取
.
之后最大数字的值?
预期结果:
这样排序
// 0.593338m
//23.346m
//23.56m
//4.2m
//0.9m
预期的最长值为:
// 0.593338m
这个怎么样:
List<decimal> list = new List<decimal>() { 23.346m, 23.56m, 4.2m, 0.90000000000000000000000000000m, 0.59333800m};
List<string> lists = list.Select(x => x.ToString("0.##############################")).ToList();
Console.WriteLine(lists.OrderByDescending( a=>a.Substring(a.IndexOf('.')).Length));
首先将列表转换为字符串列表 - 需要格式字符串来从小数的字符串版本中删除尾随零,因为它们将保留定义时使用的精度。需要 29 #,因为这是小数可以具有的最高精度,并且向右截断 0。
然后按小数点后字符串的字符串长度排序..