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

Clo*_*ner 19 linq vb.net sum

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

Public Structure Product
    Public ItemNo As Int32
    Public Description As String
    Public Cost As Decimal
End Structure
Run Code Online (Sandbox Code Playgroud)

......以及产品的通用清单:

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)
Run Code Online (Sandbox Code Playgroud)

如何定义LINQ查询以对List中的所有Product.Cost值求和?换句话说,VB.NET中的LINQ查询返回值120.90,它反映了单个LINQ查询中所有三个产品成本值的总和?

McK*_*Kay 41

内置的Sum方法已经这样做了.

在VB中它看起来像这样:

ProductList.Sum(Function(item) item.Cost)
Run Code Online (Sandbox Code Playgroud)

在C#中它看起来像这样:

ProductsList.Sum( (item) => item.Cost);
Run Code Online (Sandbox Code Playgroud)

  • VB的方法:ProductList.Sum(Function(x)x.Cost) (6认同)

eid*_*lon 5

一种方法是:

Dim s = (From p As Product In products Select p.Cost).Sum()
Run Code Online (Sandbox Code Playgroud)