有没有办法结合以下两个linqs?我尝试过使用Union
方法
dim result = query2.Union(query3).ToList()
但我得到错误
无法转换类型为'WhereSelectEnumerableIterator
2[VB$AnonymousType_4
3的对象[System.Object,System.Object,System.Collections.Generic.IEnumerable`
我只想在query2中的每个返回行都有一个额外的空行,所以如果查询2返回两行,那么应该有两个空白行,我尝试在union2上添加另一个select with union但我收到错误消息。
Dim query2 = (From e In dsSummary.Tables(0).AsEnumerable()
Group e By
DistNum = e("DistNum"),
DistName = e("DistName")
Into Group
Select New With {
.DistNum = DistNum,
.DistName = DistName,
.EventName = "Distributor Number Total",
.DiscountTotal = Group.Sum(Function(x) x.Field(Of Decimal)("DiscountTotal")).ToString("C2"),
.NetTotal = Group.Sum(Function(x) x.Field(Of Decimal)("NetTotal")).ToString("C2"),
.SummaryRow = "Y"
})
Dim query3 = (From e In dsSummary.Tables(0).AsEnumerable()
Group e By
DistNum = e("DistNum"),
DistName = e("DistName")
Into Group
Select New With {
.DistNum = DistNum,
.DistName = "",
.EventName = "Distributor Number Total",
.DiscountTotal = 0.ToString("C2"),
.NetTotal = 0.ToString("C2"),
.SummaryRow = "Z"
})
如果您只想在末尾添加“空行”,则查询中的每一行都有一个:
Dim emptyRows = From x In query2
Select New With {.DistNum = "", .DistName = "", .EventName = "", .DiscountTotal = "", .NetTotal = "", .SummaryRow = ""}
Dim resultList = query2.Concat(emptyRows).ToList()
如果你想要它们不添加到最后但是使用SummaryRow
进行排序,请将OrderBy
放在ToList()
之前。