我有以下要按column0排序的列表(myListOfRecords),该列表包含以以下格式表示日期时间的字符串值:MM/dd/YYYY hh:mm:ss tt
public class ViewModel
{
public string Column0 { get; set; }
public string Column1 { get; set; }
}
IList<ViewModel> myListOfRecords
如何在不更改ViewModel类型的情况下按字符串列值作为日期时间对该列表进行排序?
答案 0 :(得分:1)
您可以尝试创建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
让Column0
到Datetime
IList<ViewModel> myListOfRecords = new List<ViewModel>();
myListOfRecords.OrderBy(x => GetDate(x.Column0));
注意
我建议您使用Datetime
而不是string
保存日期时间值。