public ArrayList goods = new ArrayList();
             Good g1 = new Good();
            g1.goodsName = "皮鞋";
            g1.goodPurchase =180;//进价
            g1.goodsPrice = 200;//卖价
            data.goods.Add(g1);            Good g2 = new Good();
            g2.goodsName = "西装裤";
            g2.goodPurchase = 60;
            g2.goodsPrice = 80;
            data.goods.Add(g2);            Good g3 = new Good();
            g3.goodsName = "电风扇";
            g3.goodPurchase = 70;
            g3.goodsPrice = 99;
            data.goods.Add(g3);            Good g4 = new Good();
            g4.goodsName = "王老吉";
            g4.goodsPrice = 3;
            g4.goodPurchase =4;
            data.goods.Add(g4);
public ArrayList goods = new ArrayList();
我想知道 怎么做 才能统计它的 出售价和进价的和

解决方案 »

  1.   


     ArrayList goods = new ArrayList();
                Good g1 = new Good();
                g1.GoodsName = "皮鞋";
                g1.GoodPurchase = 180;//进价
                g1.GoodsPrice = 200;//卖价
                goods.Add(g1);            Good g2 = new Good();
                g2.GoodsName = "西装裤";
                g2.GoodPurchase = 60;
                g2.GoodsPrice = 80;
                goods.Add(g2);            Good g3 = new Good();
                g3.GoodsName = "电风扇";
                g3.GoodPurchase = 70;
                g3.GoodsPrice = 99;
                goods.Add(g3);            Good g4 = new Good();
                g4.GoodsName = "王老吉";
                g4.GoodsPrice = 3;
                g4.GoodPurchase = 4;
                goods.Add(g4);
                int goodsPrice = 0;
                int goodPurchase = 0;
                foreach (Good g in goods)
                {
                    goodsPrice += g.GoodsPrice;
                    goodPurchase += g.GoodPurchase;
                }
      

  2.   

    var goodsPricetotal = goods.Cast<object>().Sum(x => (x as Good).GoodsPrice);
    var goodPurchasetotal = goods.Cast<object>().Sum(x => (x as Good).GoodPurchase);
      

  3.   

    有几件“背景知识”需要了解:1. 我们不用ArrayList等弱类型数据结构。我们基本上要求只用强类型的,以便保证程序可以在编译时检查出更多设计错误。
    2. 当你使用一个简单的 Good[] 数据结构或者List<Good>数据结构,使用一个foreach就能遍历了。累计不是问题。
    3. 最为重要的是,所谓“售价+进价”的和,这是一个很无厘头的概念。我怀疑你被一个培训机构忽悠了。稍微有一个行业(零售业)知识的人就知道,商品的进价是变动的,是跟进货批次或者进货单相关的,放在跟售价并列来进行逻辑设计,非常荒唐。
      

  4.   

    我做.Net开发这几年,还真没有用到过ArrayList。
    因为我接触.Net是从.Net 2.0开始接触的,所以我甚至曾经不知ArrayList的存在。
    直到有一天被问到ArrayList,然后查了一下,才知道了原来.Net里面还有ArrayList。但ArrayList是.Net 1.0、1.1年代的产物,它实际上在.Net 2.0里面已经不推荐适用了,只不过为了与.Net 1.x兼容,所以类库里还保留着这个类。在.Net 2.0里面,可以用List<object>来代替ArrayList。显然通常我们不会用List<object>,除非我们真的不能确定List<T>的这个T的类型。如果时至今日还有人在代码里面用到ArrayList,我只能说:下三滥的培训机构和教材真是害人不浅。
      

  5.   


    在.NET 2.0时代并不能完全丢弃ArrayList,一直到C# 4.0的出现。这是因为之前的泛型集合并不支持逆变和协变。