我定义了一个命名类型 - 包含多个属性的总计。
现在我有一些总数回归到匿名类型:
Dim filteredList = Aggregate ts As Totals In empTot
Where ts.Status = "Active" Into
Tot1= Sum(ts.Tot1), Tot2= Sum(ts.Tot2)
我希望使用命名类型,方法与我在select中的方式相同:
Dim londonCusts5 = From cust In customers
Where cust.City = "London"
Order By cust.Name Ascending
Select New NamePhone With
{
.Name = cust.Name,
.Phone = cust.Phone
}
选择取自MSDN Linq Docs - Select Data Section
的示例这在Aggregate语句中是否可行?
答案 0 :(得分:0)
据我所知,您使用的LINQ语法是不可能的。但是,使用IEnumerable
上的LINQ扩展方法,您可以实现此目的。
示例:
Class MyTotal
Public Property Tot1 As Integer
Public Property Tot2 As Integer
End Class
Dim filteredList = empTot.Where(Function(ts) ts.Status = "Active") _
.Aggregate(New MyTotal(), Function(mt, value)
mt.Tot1 += value.Tot1
mt.Tot2 += value.Tot2
Return mt
End Function)