tutorial - VB.NET LINQ Query: Obtención de la suma de todos los valores para un miembro de estructura específica
query visual basic (2)
En VB.NET, asumamos que tengo la siguiente estructura:
Public Structure Product
Public ItemNo As Int32
Public Description As String
Public Cost As Decimal
End Structure
... y una lista genérica de los productos:
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)
¿Cómo definiría una consulta LINQ para sumar todos los valores de Product.Cost en la lista? En otras palabras, ¿cuál sería la consulta LINQ en VB.NET para devolver el valor 120.90, que refleja la suma de los tres valores del costo del producto en una sola consulta LINQ?
El método integrado de Suma ya lo hace.
En VB se ve así:
ProductList.Sum(Function(item) item.Cost)
En C # se ve así:
ProductsList.Sum( (item) => item.Cost);
Una forma sería:
Dim s = (From p As Product In products Select p.Cost).Sum()