在ac#list中排序数月和数年

Kri*_*ine 0 c#

我有一个字符串列表,其中每个字符串是一个月和一年

List<string> Dates = new List<string>
{
     "DEC16",
     "SEP16",
     "JUN16",
     "MAR15"
};
Run Code Online (Sandbox Code Playgroud)

任何方式来订购这样的

"MAR15",
"JUN16",
"SEP16",
"DEC16"
Run Code Online (Sandbox Code Playgroud)

xan*_*tos 5

您可以:

List<string> Dates = new List<string> {
    "DEC16",
    "SEP16",
    "JUN16",
    "MAR15"
};

Dates.Sort((p, q) => 
    DateTime.ParseExact(p, "MMMyy", CultureInfo.InvariantCulture).CompareTo(
    DateTime.ParseExact(q, "MMMyy", CultureInfo.InvariantCulture)));
Run Code Online (Sandbox Code Playgroud)

这是因为DateTime.ParseExact您可以实际解析这些日期(它们将被转换为1 December 2016 00:00等等)

请注意,月份必须是JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC(大写或小写)