我正在尝试使用之前发布的问题中的以下代码根据日期对 CSV 文件的内容进行排序:
private class CSVEntry
{
public DateTime Date { get; set; }
public string Grp { get; set; }
}
...
List<CSVEntry> csvList = new List<CSVEntry>();
csvList.Add(new CSVEntry() { Date = DateTime.ParseExact(col[7], "dd/MM/yyyy", null), Grp = col[9] });
var results = csvList.OrderBy(x => x.Date); // An error occurs at "Date".
...
Run Code Online (Sandbox Code Playgroud)
但我收到了这个错误:
“string”不包含“Date”的定义,并且找不到接受“string”类型的第一个参数的扩展方法“Date”。
我想要的输出是来自其他列但按时间顺序排序的字符串。当我尝试使用此代码显示日期时:
var results = csvList.Where(x => x.Grp == "DEFAULT").OrderBy(x => x.Date);
Run Code Online (Sandbox Code Playgroud)
它与输出完美配合,因为日期按时间顺序排序。但是,这次我不想显示日期。我想像我上面提到的那样显示来自其他列的字符串。我尝试使用
var results = csvList.Select(x => x.Grp).OrderBy(x => x.Date);
Run Code Online (Sandbox Code Playgroud)
但也得到了同样的错误。我哪里错了?我是 LINQ 的新手,不熟悉 …