首页 > 解决方案 > C# 控制台应用程序 - 查询 IEnumerable 并重新格式化日期

问题描述

我有一个 IEnumerable 我查询来获取一些数据——并且包含在该查询中的是一个字段 EndDate。但是,我想更改结束日期的格式。有没有办法在查询中执行此操作,还是我需要查询然后更改日期?下面的示例代码。

目前,sc.EndDate 的格式为“mm/dd/yyyy”(例如,2019 年 5 月 28 日),但我需要将该字段设置为“dd-MMM-yyyy”(例如,2019 年 5 月 28 日) .

有什么想法或想法吗?

编辑:我的类“分数”将所有内容都作为字符串,因为我是从代码前面的 CSV 文件中获取的。下面的类:

        public class Score
    {
        [CsvColumn(Name = "Name", FieldIndex = 1)]
        public string Name { get; set; }

        [CsvColumn(Name = "StudentId", FieldIndex = 2)]
        public string StudentId { get; set; }

        [CsvColumn(Name = "Email", FieldIndex = 3)]
        public string Email { get; set; }

        [CsvColumn(Name = "LastLogin", FieldIndex = 4)]
        public string LastLogin { get; set; }

        [CsvColumn(Name = "PlacementAssessmentNumber", FieldIndex = 5)]
        public string PlacementAssessmentNumber { get; set; }

        [CsvColumn(Name = "TotalNumberofPlacements Taken", FieldIndex = 6)]
        public string TotalNumPlacements { get; set; }

        [CsvColumn(Name = "StartDate", FieldIndex = 7)]
        public string StartDate { get; set; }

        [CsvColumn(Name = "StartTime", FieldIndex = 8)]
        public string StartTime { get; set; }

        [CsvColumn(Name = "EndDate", FieldIndex = 9)]
        public string EndDate { get; set; }

        [CsvColumn(Name = "EndTime", FieldIndex = 10)]
        public string EndTime { get; set; }

        [CsvColumn(Name = "ProctoredAssessment", FieldIndex = 11)]
        public string ProctoredAssessment { get; set; }

        [CsvColumn(Name = "TimeinPlacement", FieldIndex = 12)]
        public string TimeInPlacement { get; set; }

        [CsvColumn(Name = "PlacementResults", FieldIndex = 13)]
        public string PlacementResults { get; set; }

        IEnumerable<Score> scores = cc.Read<Score>(resultsPath, inputFileDescription);

        string whereSort = "Yes/Complete";

        var scoresById =
            from sc in scores
            orderby sc.Name
            where ((sc.ProctoredAssessment.ToString() == whereSort.ToString()))
            select new { sc.StudentId, sc.PlacementResults, sc.ProctoredAssessment, sc.EndDate };

标签: c#linqconsole-applicationienumerable

解决方案


感谢@Sweeper,我找到了解决方案。在我的课堂上,我将 String EndDate 更改为 DateTime EndDate,并将字段转换为 ToString("dd-MMM-yyyy")。我想我真的想多了!


推荐阅读