【发布时间】:2018-11-08 09:35:38
【问题描述】:
我有一个这样的字符串列表
"978.8"
"9600.8"
"97.988"
搜索完所有相关问题后,我尝试使用最常用的方法将列表排序为数字
var newvalues = new List<string>() {"978.8","97.988","9600.8"};
newvalues.OrderBy(x => double.Parse(x.Value));
但它总是将列表排序为默认字符串值
"9600.8"
"97.988"
"978.8"
我尝试了其他类型的转换,但仍然没有成功。以前有没有人为此挣扎过?我该如何解决这个问题?
【问题讨论】:
-
如何分配
OrderBy的结果?你目前的文化是什么? -
您的
OrderBy子句应该可以工作。如果没有完整的代码,就不可能找出问题所在。 -
你没有说明问题出在哪里!您只是向我们提供了输入数据和您获得的结果,但没有说明您如何获得它们。我根本没有为此挣扎,因为it works as expected.
-
您需要将结果分配给一个新变量。
x.Value是什么?这是double.Parse(x)。 -
你需要知道
OrderBy返回一个值;它不会改变原始列表。因此,您需要将该值分配给一个变量。