按日期排序并转换为字符串 In 列表

本文关键字:字符串 In 列表 转换 日期 排序 | 更新日期: 2023-09-27 18:37:18

我有以下代码:

List<EncryptionReport> result = null;
result = m_encryptionSvc.GetReportsFromRefnr(tuples);
result = result
  .OrderByDecending(e => e.Acc_date)
  .ThenBy(e => e.Acc_date.ToString("YYYY-mm-dd H:mm:ss"))
  .ToList();

我想要的是按日期降序排序,然后将日期解析为字符串格式。但是解析不起作用。

排序后如何将日期解析为字符串?

溶液

      var test = result.OrderBy(e => e.Acc_date)
                    .Select(x => 
                        new 
                        { 
                            x.Accident_nr,
                            x.Encrypted,
                            x.ExistsInStrada,
                            x.Id,
                            x.Original,
                            x.Report_id,
                            x.ReportSource,
                            x.State,
                            @Acc_date = x.Acc_date.ToString("yyyy-MM-dd hh:mm:ss")
                        })
                    .ToList();

按日期排序并转换为字符串 In 列表

如果您只想要一个字符串列表,其中的 Acc_date 值根据您的要求格式化,那么您需要在OrderBy之后调用Select

List<string> dates = result.OrderByDescending(e => e.Acc_date)
                           .Select(x => x.Acc_date.ToString("YYYY-mm-dd H:mm:ss"))
                           .ToList();

当然,您不能将其返回分配给相同的result(List)变量,但您需要一个单独的List<string>

假设您想在排序后返回加密报告列表。我会在 EncryptionReport 对象中创建另一个仅获取属性,该属性会根据需要重新设置日期字符串。

public class EncryptionReport {
    //Other properties

    public string Acc_date_formatted { get { return Acc_date.ToString("YYYY-mm-dd H:mm:ss");} ]
}
List<EncryptionReport> result = null;
result = m_encryptionSvc.GetReportsFromRefnr(tuples);
result = result
  .OrderByDecending(e => e.Acc_date)
  .ToList();