Linq:如何在此语句中添加 Order By 子句

Linq: How do I add an Order By clause to this statement

我有一个 linq 语句,它采用现有数据表并使用 GroupBy 获取不同年份的列表,然后获取具有该年份的项目的计数并将结果放在另一个数据表中。

Dim yearQuery = existingDT.AsEnumerable().GroupBy(Function(yi) yi.Field(Of String)(existingDT.Columns("Year")))

Dim yearResults As New DataTable()

yearResults.Columns.Add("Year")
yearResults.Columns.Add("Quantity")

For Each yi In yearQuery 
    yearResults.Rows.Add( yi.Key, yi.Count)
Next

这很好用,但我可能无法弄清楚如何生成结果,以便 yearResults 数据表中的数据按年份降序排列。

为什么 Year 是字符串而不是整数?如果你不能改变你总是必须解析那个值:

Dim orderedYearQuery = existingDT.AsEnumerable().
    GroupBy(Function(row) Int32.Parse(row.Field(Of String)("Year"))).
    OrderByDescending(Function(grp) grp.Key)