我将尝试使用动态查询创建嵌套分组。
以下是我的数据集合。
这个linq查询返回了期望的结果。
以下是上述LINQ查询的输出结果: 但我需要以不同的顺序对不同的列进行分组。
因此,我尝试创建动态LINQ查询。但是我的代码块结果与之前的LINQ查询不同。
以下是我的数据集合。
var invoices = new List < Purchase > () {
new Purchase() {
Id = 1, Customer = "a", Date = DateTime.Parse("1/1/2009")
}, new Purchase() {
Id = 2, Customer = "a", Date = DateTime.Parse("1/2/2009")
}, new Purchase() {
Id = 3, Customer = "a", Date = DateTime.Parse("1/2/2009")
}, new Purchase() {
Id = 4, Customer = "b", Date = DateTime.Parse("1/1/2009")
}, new Purchase() {
Id = 5, Customer = "b", Date = DateTime.Parse("1/1/2009")
}, new Purchase() {
Id = 6, Customer = "b", Date = DateTime.Parse("1/2/2009")
}
};
这个linq查询返回了期望的结果。
var tree = invoices.GroupBy(x => x.Date).Select(x => new
{
Key = x.Key,
Items = x.GroupBy(y => y.Customer).Select(y => new
{
Key = y.Key,
Items = y
})
}).ToList();
以下是上述LINQ查询的输出结果: 但我需要以不同的顺序对不同的列进行分组。
因此,我尝试创建动态LINQ查询。但是我的代码块结果与之前的LINQ查询不同。
var groupedInvoiceItems = invoices.AsQueryable().GroupBy("new (Date, Customer)", "it");