Rumah >pembangunan bahagian belakang >C++ >Bagaimana Menggunakan LINQ GroupBy, Sum, dan Count dengan Betul untuk Mengagregatkan Data Produk?
LINQ: GroupBy, Jumlah dan Kira
Matlamat kod ini adalah untuk mengumpulkan koleksi produk mengikut kod produk dan mengembalikan objek yang mengandungi nama produk, kuantiti produk untuk setiap kod dan jumlah harga setiap produk.
Data sampel mengandungi tiga produk:
<code>{"p1", 6.5, "Product1"}, {"p1", 6.5, "Product1"}, {"p2", 12, "Product2"}</code>
Keputusan yang dijangkakan adalah seperti berikut:
<code>Product1: count 2 - Price:13 (2x6.5) Product2: count 1 - Price:12 (1x12)</code>
Walau bagaimanapun, nilai kiraan yang dijana oleh kod adalah tidak betul, sentiasa menunjukkan 1 untuk setiap produk.
Masalahnya ialah kaedah SelectMany() digunakan secara tidak betul. Kod harus menggunakan kaedah Select(), yang memudahkan ungkapan:
<code>List<ResultLine> result = Lines .GroupBy(l => l.ProductCode) .Select(cl => new ResultLine { ProductName = cl.First().Name, Quantity = cl.Count().ToString(), Price = cl.Sum(c => c.Price).ToString(), }).ToList();</code>
Pengubahsuaian ini membetulkan masalah dan menghasilkan nilai kiraan yang diingini:
<code>Product1: count 2 - Price:13 (2x6.5) Product2: count 1 - Price:12 (1x12)</code>
Atas ialah kandungan terperinci Bagaimana Menggunakan LINQ GroupBy, Sum, dan Count dengan Betul untuk Mengagregatkan Data Produk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!