Lambda Expression来订购(排序)我的列表集合

Ros*_*l K 2 c# c#-4.0

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

class mymodel()
{
 public string Name{ get; set; }
 public string AMPM{ get; set; }
}
List<mymodel> mylist;
Run Code Online (Sandbox Code Playgroud)

AMPM属性应包含"AM"或"PM"或"MIX"或" - "

我需要以这样的方式对列表集合进行排序:AM值位于顶部,然后是PM值,然后是Mix,然后是" - "值

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

Maa*_*ten 5

您可以添加其他属性.

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);
Run Code Online (Sandbox Code Playgroud)