代码之家  ›  专栏  ›  技术社区  ›  ClockEndGooner

VB.NET LINQ查询:获取特定结构成员的所有值之和

  •  17
  • ClockEndGooner  · 技术社区  · 15 年前

    在VB.NET中,假设我具有以下结构:

    Public Structure Product
        Public ItemNo As Int32
        Public Description As String
        Public Cost As Decimal
    End Structure
    

    Dim ProductsList As New List(Of Product)
    
    Dim product1 As New Product
    
    With product1
        .ItemNo = 100
        .Description = "Standard Widget"
        .Cost = 10D
    End With
    
    ProductsList.Add(product1)
    
    Dim product2 As New Product
    
    With product2
        .ItemNo = 101
        .Description = "Standard Cog"
        .Cost = 10.95D
    End With
    
    ProductsList.Add(product2)
    
    Dim product3 As New Product
    
    With product3
        .ItemNo = 101
        .Description = "Industrial Strenght Sprocket"
        .Cost = 99.95D
    End With
    
    ProductsList.Add(product3)
    

    如何定义LINQ查询来汇总列表中的所有Product.Cost值?换句话说,什么是LINQ 在VB.NET中查询以返回值120.90,该值反映了单个LINQ查询中所有三个产品成本值的总和?

    2 回复  |  直到 12 年前
        1
  •  46
  •   Matthew Murdoch    12 年前

    内置的Sum方法已经做到了这一点。

    在VB中,它如下所示:

    ProductList.Sum(Function(item) item.Cost)
    

    在C#中,它看起来是这样的:

    ProductsList.Sum( (item) => item.Cost);
    
        2
  •  4
  •   eidylon    15 年前

    Dim s = (From p As Product In products Select p.Cost).Sum()