質問

LINQ to SQL を使用して、OrderDetails のコレクションを持つ Order クラスを作成しました。注文の詳細には、数量 x 商品価格を取得する LineTotal というプロパティがあります。

データベースに対して新しい LINQ クエリを実行して注文合計を見つける方法はわかっていますが、DB から OrderDetails のコレクションをすでに持っているので、コレクションから直接 LineTotal の合計を返す簡単な方法はありますか?

注文合計を Order クラスのプロパティとして追加したいと思います。コレクションをループして、各 Order.OrderDetail で合計を計算できると思いますが、もっと良い方法があると思います。

役に立ちましたか?

解決

LINQ to Objects を実行し、LINQ を使用して合計を計算することができます。

decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();

これを行うためにラムダ式を使用することもできます。これは、少し「きれい」です。

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);

必要に応じて、これを次のように Order クラスに接続できます。

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top