Sort List like Excel columns sort

后端 未结 2 916
醉话见心
醉话见心 2020-12-21 07:38

Please consider this List:

\"A\", \"C\", \"AB\", \"AD\", \"N\", \"Z\", \"AC\"

I want to sort this string (That are being Excel column) like

相关标签:
2条回答
  • 2020-12-21 08:03

    First order by the length of column name ("C" comes before "AB"), then use normal alphabetical (string) sorting on strings with same length ("AC" before "AD").

    var columns = new[] { "A", "C", "AB", "AD", "N", "Z", "AC" };
    var sorted = columns.OrderBy(c => c.Length)
                        .ThenBy(c => c);
    
    0 讨论(0)
  • 2020-12-21 08:05

    Update: Thanks @JeppeStigNielsen for correct comment, I add StringComparer.Ordinal to support in all cultures:

    var result = List.OrderBy(p=>p.Length).ThenBy(p=>p,StringComparer.Ordinal);
    
    0 讨论(0)
提交回复
热议问题