繁体   English   中英

按日期时间的字符串列值对列表进行排序

[英]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并使用GetDateColumn0Datetime

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

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

c#在线

笔记

我建议您使用Datetime而不是string保存日期时间值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM