![](/img/trans.png)
[英]How to sort a DataGridView column that is has a DateTime Value, but is displayed as a String?
[英]Sort List by a string column value as datetime
我有以下列表 (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
如何在不更改 ViewModel 类型的情况下按字符串列值作为日期时间对该列表进行排序?
您可以尝试创建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
保存日期时间值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.