计算通用列表的十进制属性总数

时间:2014-03-19 20:02:05

标签: c# generics

由于某种原因,我的程序正在运行,我被卡住了......

我有一个名为lstParts的通用列表。在列表中,我有3个属性,从我的类CPart调用,即PartDescription,PartStockAvailable,mPartPrice。现在我想计算总共10个零件值。

这是我的代码

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;

      namespace PartsGarage
      {

       public partial class CfrmPartsGarage : Form
       {

        List<CParts> lstParts = new List<CParts>();

        public CfrmPartsGarage()
        {

           InitializeComponent();

           // Add parts to the list.
           lstParts.Add(new CParts() { PartDescription = "Crank", PartStockAvailable = 2, mPartPrice = 200.00m });
           lstParts.Add(new CParts() { PartDescription = "Radio System", PartStockAvailable = 1, mPartPrice = 2500.00m });
           lstParts.Add(new CParts() { PartDescription = "Aircondition", PartStockAvailable = 5, mPartPrice = 4000.00m });
           lstParts.Add(new CParts() { PartDescription = "Engine", PartStockAvailable = 10, mPartPrice = 7000.00m });
           lstParts.Add(new CParts() { PartDescription = "Tyres", PartStockAvailable = 3, mPartPrice = 4500.00m });
           lstParts.Add(new CParts() { PartDescription = "Brakes", PartStockAvailable = 13, mPartPrice = 500.00m });
           lstParts.Add(new CParts() { PartDescription = "Sun-roof", PartStockAvailable = 9, mPartPrice = 750.00m });
           lstParts.Add(new CParts() { PartDescription = "Remote", PartStockAvailable = 50, mPartPrice = 50.00m });
           lstParts.Add(new CParts() { PartDescription = "Batteries", PartStockAvailable = 100, mPartPrice = 10.00m });
           lstParts.Add(new CParts() { PartDescription = "Engine", PartStockAvailable = 10, mPartPrice = 7000.00m });
        }

        private void btnStockValue_Click(object sender, EventArgs e)
        {
          //Here I want to calculate the total value of all the parts???
          MessageBox.Show("Total value of stock: " + StockValue);
        }
       }
      }

1 个答案:

答案 0 :(得分:2)

var totalValue = lstParts.Sum(x => x.PartStockAvailable * x.mPartPrice);