【问题标题】:Arrange List<> in ascending order按升序排列列表<>
【发布时间】:2013-08-31 16:14:36
【问题描述】:

我有一个类型为字符串的列表,我想按升序排列

listCustomFields = new List<String>() { "FirstName", "MiddleName", "Class" };

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    您可以使用 LINQ OrderBy 方法(它将生成新的 List&lt;string&gt; 并排序项目):

    var ordered = listCustomField.OrderBy(x => x).ToList();
    

    List&lt;T&gt;.Sort 方法(它将对列表进行适当的排序):

    listCustomField.Sort();
    

    【讨论】:

    • 我认为这是更好的答案,因为我需要按降序进行,而 linq 支持这个
    【解决方案2】:

    使用这个

    listCustomFields.sort();
    

    【讨论】:

    • 嘿@MurtazaMunshi 我不明白你为什么选择这个答案。 Marcin 的答案写得更快更好。如果有多个答案看起来相同,请选择最快且质量最好的答案。
    • 对不起,我是堆栈溢出的新手,我不知道这里的规则。我会记住你的话。感谢您指导我。
    【解决方案3】:

    你可以用OrderBy点赞;

    升序对序列的元素进行排序。

    listCustomFields = listCustomFields.OrderBy(n => n).ToList();
    

    您也可以使用List&lt;T&gt;.Sort Method

    List<String> listCustomFields = new List<String>() { "FirstName", "MiddleName", "Class" };
    listCustomFields = listCustomFields.OrderBy(n => n).ToList();
    
    foreach (var item in listCustomFields)
    {
       Console.WriteLine(item);
    }
    

    输出将是;

    Class
    FirstName
    MiddleName
    

    这里是DEMO

    【讨论】:

      【解决方案4】:

      您不需要 LINQ:您可以通过调用 Sort() 方法对列表进行排序,而不是创建排序副本:

      listCustomFields.Sort();
      

      顺序是隐式升序的。如果您需要更改它,请提供自定义比较器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多