Ответ 1
Встроенный метод Sum делает это уже.
В VB это выглядит так:
ProductList.Sum(Function(item) item.Cost)
В С# он выглядит так:
ProductsList.Sum( (item) => item.Cost);
В 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?
Встроенный метод Sum делает это уже.
В VB это выглядит так:
ProductList.Sum(Function(item) item.Cost)
В С# он выглядит так:
ProductsList.Sum( (item) => item.Cost);
Один из способов:
Dim s = (From p As Product In products Select p.Cost).Sum()