Сортировать список по значению столбца в виде даты и времени - PullRequest
0 голосов
/ 03 октября 2018

У меня есть следующий список (myListOfRecords), который я хочу отсортировать по column0, который содержит строковые значения, представляющие дату и время в следующем формате: MM/dd/YYYY hh:mm:ss tt

public class ViewModel
{
    public string Column0 { get; set; }
    public string Column1 { get; set; }
}

IList<ViewModel> myListOfRecords

Как мне отсортировать этосписок по значению строкового столбца как datetime без изменения типов в моей ViewModel?

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете попытаться создать DateTime.TryParseExact, чтобы сделать ваш клиент форматом DateTime в функции и вернуть Datetime

static DateTime GetDate(string Column0) {
    DateTime dt;
    if (!DateTime.TryParseExact(Column0, "MM/dd/YYYY hh:mm:ss tt",
               CultureInfo.InvariantCulture,
               DateTimeStyles.None, out dt))
    {
        dt = DateTime.MinValue;
    }

    return dt;
}

, затем использовать linq OrderBy и использовать GetDate let Column0 до Datetime

IList<ViewModel> myListOfRecords = new List<ViewModel>();

myListOfRecords.OrderBy(x => GetDate(x.Column0));

c # онлайн

ПРИМЕЧАНИЕ

Я бы предложил использовать Datetime вместоstring сохранить значение даты и времени.

...