【问题标题】:Sorting a List in C#在 C# 中对列表进行排序
【发布时间】:2011-06-20 20:44:15
【问题描述】:
public class BatchProcess
    {
        public string process { get; set; }
        public DateTime runtime { get; set; }
        public bool running { get; set; }
    }

所以我有这些人的名单 - List<BatchProcess> list

我将如何根据这些列中的每一列进行排序?我听说我可以用 LINQ 做到这一点,但我对 LINQ 很差劲。看起来怎么样?

谢谢。

【问题讨论】:

    标签: c# .net linq sorting


    【解决方案1】:

    您可以按运行时排序,例如,通过:

    var orderedByRuntime = list.OrderBy(p => p.runtime);
    

    如果要按“进程”降序排序,可以使用:

    var orderedByProcessDesc = list.OrderByDecending(p => p.process);
    

    【讨论】:

      【解决方案2】:

      这是一个使用 LINQ(lambda 语法)创建按process 排序的列表的示例。

      var listByProcess = list.OrderBy(bp => bp.process);
      

      【讨论】:

        【解决方案3】:

        使用 OrderBy:

        var sortedList = list.OrderBy(p => p.runtime).ToList();
        

        【讨论】:

          【解决方案4】:

          如果您想对所有这些进行排序,这似乎就是您所要求的,您可以执行以下操作

          var sorted = list.OrderBy(p => p.process).ThenBy(r => r.runtime);
          

          【讨论】:

            猜你喜欢
            • 2018-07-01
            • 2010-10-29
            • 2018-05-21
            • 1970-01-01
            • 1970-01-01
            • 2022-11-13
            • 2016-11-03
            • 1970-01-01
            相关资源
            最近更新 更多