簡體   English   中英

在ac#列表中排序月份和年份

[英]sorting months and years in a c# list

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

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

像這樣訂購的任何方式

"MAR15",
"JUN16",
"SEP16",
"DEC16"

您可以:

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)));

這是因為使用DateTime.ParseExact實際上可以解析這些日期(它們將轉換為1 December 2016 00:00 ,依此類推)

請注意,月份必須為1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月(大寫或小寫)

var sortedMonths = Dates
        .Select(x => new {
            Name = x,
            Sort = DateTime.ParseExact(x, "MMMyy", CultureInfo.InvariantCulture)
        })
        .OrderBy(x => x.Sort)
        .Select(x => x.Name)
        .ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM