我有一个类类型的列表集合,并且类包含以下属性。

class mymodel()
{
 public string Name{ get; set; }
 public string AMPM{ get; set; }
}
List<mymodel> mylist;


AMPM属性应包含“ AM”或“ PM”或“ MIX”或“-”

我需要对列表集合进行排序,以使AM值排在最前面,然后是PM值,然后是Mix,然后是“-”值

如何使用Lambda订购此列表集合?

最佳答案

您可以添加另一个属性。

class mymodel {
    public string Name{ get; set; }
    public string AMPM{ get; set; }
    public int AMPM_Sort {
        get {
            if (AMPM == "AM")   return 1;
            if (AMPM == "PM")   return 2;
            if (AMPM == "MIX")  return 3;
            if (AMPM == "--")   return 4;
            return 9;
        }
    }
}
List<mymodel> mylist;
var sorted = mylist.OrderBy(x => x.AMPM_Sort);

08-07 15:46