Подтвердить что ты не робот

Запрос VB.NET LINQ: получение суммы всех значений для конкретного члена структуры

В 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?

4b9b3361

Ответ 1

Встроенный метод Sum делает это уже.

В VB это выглядит так:

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

В С# он выглядит так:

ProductsList.Sum( (item) => item.Cost);

Ответ 2

Один из способов:

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