var input = new[] { "May#01", "April#02", "Jan#03", "Jan#02", "Jan#1" };
var result = input.OrderBy(s => s.Split('#')[0])
.ThenBy(s => Int32.Parse(s.Split('#')[1]));
Результат:
[
"April#02",
"Jan#1",
"Jan#02",
"Jan#03",
"May#01"
]
Другой ответ будет производить вывод:
[
"April#02",
"Jan#02",
"Jan#03",
"Jan#1",
"May#01"
]
Что я предполагаю, что это неверно, так как Ян # 02 идет перед Ян # 1.
Вы можете сделать мой код более эффективным, выполнив разделение один раз и сохранив обе части в анонимном классе вместе с исходной строкой, но я не хочу свертывать код.
Yup, который сработал, спасибо Ян, последнее, что мне нужно, чтобы все месяцы были разделены запятыми как конечная строка. – Codehelp
@Codehelp вы можете использовать один и тот же метод 'Split', а также' Select' и 'string.Join' –