Ну, как указано в другой ответ, вы можете это сделать. Мой ответ использует анонимную структуру, поэтому сортировка должна быть более эффективной.
method1Result
показать, что я сделал бы (при условии, что данные всегда действительны). Главное преимущество заключается в том, что у вас есть объект DateTime
, поэтому было бы проще использовать его позже.
method2Result
не использовать DateTime.Parse
как требуется в вопросе. Однако это приводит к более длинному коду, и результат менее полезен (и если вам нужно его вернуть, вам придется заменить анонимную структуру на один, который вы определите.
var data = new string[]
{
"01/2012",
"04/2012",
"01/2013",
"06/2012",
};
var method1Result = data
.Select(x => DateTime.Parse(x)).OrderBy(x => x);
var method2Result = data
.Select(x =>
{
var t = x.Split('/');
return new {
year = int.Parse(t[1]),
month = int.Parse(t[0]) };
})
.OrderBy(x => x.year)
.ThenBy(x => x.month);