【发布时间】:2017-04-17 23:13:11
【问题描述】:
我一直在研究对象的排序,这些对象需要在具有整数值(如“1”、“2”)的字符串上完成。但是 LINQ OrderBy 或 SOrt 本身没有正确排序:
以下代码可以重现我的问题:
var listStr = new List<string>()
{
"1",
"100",
"12"
};
var sortedList = listStr.OrderBy(x => x);
var desList = listStr.OrderByDescending(x => x);
这里,SortedList 的顺序是:“1”,“100”,“12”,而 deslist 是“12”,“100”,“12”
我对 C# 排序中的字符串比较方式感到困惑。 我对不工作的原因很感兴趣。
【问题讨论】:
-
我已经回答了这个问题,但我对解决方案不感兴趣,因为我可以自己正确地做到这一点。我只想知道它背后的原因。所以,如果有人能就上述问题给出逻辑,那就太好了: