it-swarm-id.com

Jumlah item dalam koleksi

Menggunakan LINQ ke SQL, saya memiliki kelas Order dengan koleksi OrderDetails. Detail Pesanan memiliki properti yang disebut LineTotal yang mendapat Qnty x ItemPrice.

Saya tahu cara melakukan kueri LINQ baru dari database untuk menemukan total pesanan, tetapi karena saya sudah memiliki koleksi OrderDetails dari DB, apakah ada metode sederhana untuk mengembalikan jumlah LineTotal langsung dari koleksi?

Saya ingin menambahkan total pesanan sebagai properti dari kelas Pesanan saya. Saya membayangkan saya bisa mengulang koleksi dan menghitung jumlahnya dengan setiap pesanan. OrderDetail, tapi saya kira ada cara yang lebih baik.

70
Adrian

Anda dapat melakukan LINQ ke Objek dan menggunakan LINQ untuk menghitung total:

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

Anda juga dapat menggunakan ekspresi lambda untuk melakukan ini, yang sedikit "bersih".

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

Anda kemudian dapat menghubungkan ini ke kelas Order Anda seperti ini jika Anda mau:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
157
Espo