当c#

时间:2018-04-11 23:31:46

标签: c# list linq

我正在使用OrderByDescending并且效果很好,但是当我添加超过3位的数字时,它们会变得混乱。例如:

List<int> = {20, 84, 102, 94, 205, 33}

它会这样命令:

94, 84, 33, 205, 20, 102

就好像有小数而不是整数。我该如何解决这个问题?并使其从最大值下降到最小值

1 个答案:

答案 0 :(得分:4)

根据您的排序结果,您实际上正在对List<string>进行排序,而不是List<int>

如果您确定列表中的所有元素都是有效整数,则可以使用int.ParseOrderByDescending子句中动态转换它们:

var numbers = new List<string> {"20", "84", "102", "94", "205", "33"};

Console.WriteLine(string.Join(", ", numbers.OrderByDescending(int.Parse)));

<强>输出

enter image description here