1

我定义了一个命名类型 - 具有多个属性的总计。

现在我有一些总数回到匿名类型:

Dim filteredList = Aggregate ts As Totals In empTot 
Where ts.Status = "Active" Into  
Tot1= Sum(ts.Tot1), Tot2= Sum(ts.Tot2)

我想以与选择中相同的方式使用命名类型:

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 的示例 - 选择数据部分

这在 Aggregate 语句中是否可能?

4

1 回答 1

0

据我所知,您使用的 LINQ 语法是不可能的。但是,使用 LINQ 扩展方法IEnumerable,您可以完成此操作。

例子:

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)
于 2013-06-26T22:12:04.967 回答