2013-06-26 85 views
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 - Select Data Section中選擇示例

這是否可能出現在Aggregate語句中?

回答

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)