小编use*_*613的帖子

如何使用 LINQ 选择然后 OrderBy?

我正在尝试使用之前发布的问题中的以下代码根据日期对 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 的新手,不熟悉 …

.net c# linq asp.net

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

linq ×1