【问题标题】:Linq orderby OrderByDescending not working when there's more than 2 digits c#Linq orderby OrderByDescending 在超过 2 位时不起作用 c#
【发布时间】:2018-04-11 23:31:46
【问题描述】:

我正在使用 OrderByDescending,它工作得很好,除了当我添加超过 3 位数的数字时,它们会搞砸。例如:

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

它会这样排序:

94, 84, 33, 205, 20, 102

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

【问题讨论】:

标签: c# list linq


【解决方案1】:

根据您的排序结果,您实际上是在排序List&lt;string&gt;,而不是List&lt;int&gt;

如果您确定列表中的所有元素都是有效整数,您可以使用int.Parse 在您的OrderByDescending 子句中即时转换它们:

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

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

输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多