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)
我有一个 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)