如何从列表中获取具有最大小数的值

问题描述 投票:0回答:1
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

c# linq decimal
1个回答
0
投票

这个怎么样:

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。

然后按小数点后字符串的字符串长度排序..

© www.soinside.com 2019 - 2024. All rights reserved.