c# - 如何使用 Linq 按长度对数组进行排序,然后按值排序

标签 c# arrays linq sorting

按顺序给出以下值:

011124
01112
011123
1905

我如何使用 Linq 对其进行排序:

List<string> values = new List<string>() { "011124", "01112", "011123", "1905" };

.. 所以实际上是这样的:

List<string> values = new List<string>() { "011124", "011123", "01112", "1905" };

(更新:添加了“1905”,因为之前的演示可以很容易地使用 int 类型进行排序——很抱歉造成混淆)

最佳答案

试试这个片段:

var sortedValues = values
    .OrderByDescending(x => x.Length)
    .ThenByDescending(x => Convert.ToInt32(x));

如果你真的需要把它作为一个列表来使用,那么在最后添加ToList()

关于c# - 如何使用 Linq 按长度对数组进行排序,然后按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31245672/

相关文章:

c# - 是否可以在 Visual Studio c# 中指定测试顺序?

c# - TestContext 名称与给定代码有何关联?

javascript - 我是否需要添加属性才能获得所需的输出?

c - scanf 跳过一行

c# - 读取字符串时出现 OutOfMemoryException

c# - 使用 string.format() 函数或 LINQ 分隔字符串的最佳方法是什么?

java - 什么更有效?将分割字符串存储在数组中,或者每次需要时调用 split 方法

c# - MongoDB c# 驱动程序 - 在序列化字典中执行 LINQ "Any"

linq - 如何使用 Linq 生成唯一的随机数

c# - GroupBy 与 linq 方法语法(不是查询语法)