能用Lambda 表达式最好,谢谢了

解决方案 »

  1.   

    namespace ConsoleApplication1
    {
        /// <summary>
        /// 商品
        /// </summary>
        public class GoodsInfo
        {
            /// <summary>
            /// 编号
            /// </summary>
            public string GoodsNO { get; set; }
            /// <summary>
            /// 数量
            /// </summary>
            public decimal GoodsNum { get; set; }
        }    class Program
        {
            static void Main(string[] args)
            {
                List<GoodsInfo> list = new List<GoodsInfo>();
                list.Add(new GoodsInfo() { GoodsNO = "NO.01", GoodsNum = 3 });
                list.Add(new GoodsInfo() { GoodsNO = "NO.02", GoodsNum = 1 });
                list.Add(new GoodsInfo() { GoodsNO = "NO.01", GoodsNum = 2 });
                list.Add(new GoodsInfo() { GoodsNO = "NO.03", GoodsNum = 4 });
                list.Add(new GoodsInfo() { GoodsNO = "NO.02", GoodsNum = 2 });            var result = from p in list
                             group p by p.GoodsNO into g
                             select new
                             {
                                 GoodsNO = g.Key,
                                 GoodsNum = g.Sum(x => x.GoodsNum)
                             };            result.ToList().ForEach(x => Console.WriteLine(x.GoodsNO + " " + x.GoodsNum));
            }
        }
    }
      

  2.   


    var temp = (from p in list
                            group p by p.GoodsNO).Select(p => new
                            {
                                goodNo = p.Key,
                                goodSum = p.Sum(q => q.GoodsNum)
                            });
      

  3.   

    或者 var temp = list.GroupBy(p => p.GoodsNO).Select(p => new
                {
                    goodNo = p.Key,
                    goodSum = p.Sum(q => q.GoodsNum)
                });
      

  4.   

     var temp = list.GroupBy(p => p.GoodsNO)
                              .Select(g => new GoodsInfo
                                                   {
                                                         GoodsNO = g.Key,
                                                         GoodsNum =g.Sum(q => q.GoodsNum)
                                                   });