21

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)

リスト内のすべての Product.Cost 値を合計する LINQ クエリを定義するにはどうすればよいですか? つまり、VB.NET の LINQ クエリで 120.90 という値が返されるとはどういうことでしょうか。これは、1 つの LINQ クエリで 3 つの製品コスト値すべての合計を反映したものです。

4

2 に答える 2

46

組み込みの Sum メソッドは既にこれを行っています。

VB では次のようになります。

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

C# では次のようになります。

ProductsList.Sum( (item) => item.Cost);
于 2009-11-23T19:31:06.063 に答える
5

1つの方法は次のとおりです。

Dim s = (From p As Product In products Select p.Cost).Sum()
于 2009-11-23T19:31:21.443 に答える