以下是代码:
  DataTable myDT = new DataTable();
            myDT.Columns.Add(new DataColumn("PM", typeof(string)));     //单据编号
            myDT.Columns.Add(new DataColumn("BH", typeof(string)));     //编号
            myDT.Columns.Add(new DataColumn("DH", typeof(string)));     //工单号
            myDT.Columns.Add(new DataColumn("SL",typeof(decimal)));     //数量
            DataRow myRow = myDT.NewRow();
            myRow["PM"] = "M012013070001";
            myRow["BH"] = "0001";
            myRow["DH"] = "130701001";
            myRow["SL"] = 100;
            myDT.Rows.Add(myRow);
            myRow = myDT.NewRow();
            myRow["PM"] = "M012013070001";
            myRow["BH"] = "0002";
            myRow["DH"] = "130701001";
            myRow["SL"] = 120;
            myDT.Rows.Add(myRow);
            myRow = myDT.NewRow();
            myRow["PM"] = "M012013070001";
            myRow["BH"] = "0003";
            myRow["DH"] = "130701002";
            myRow["SL"] = 120;
            myDT.Rows.Add(myRow);
            myRow = myDT.NewRow();
            myRow["PM"] = "M012013070001";
            myRow["BH"] = "0004";
            myRow["DH"] = "130701002";
            myRow["SL"] = 200;
            myDT.Rows.Add(myRow);
     var myTable = from t in myDT.AsEnumerable()
                          group t by new { myDH = t.Field<string>("DH") } into x
                          select new
                          {
                              x.Key.myDH,
                              y = x.Sum(k => k.Field<decimal>("SL"))
                          };
            foreach (var s in myTable)
            {
                MessageBox.Show(s.myDH.ToString() + ':' + s.y.ToString());
            }
对单号进行分组,对数量求和,要达到下面这种样式:
单据编号                                          工单号          数量
M0120130700010001,M0120130700010002     130701001      220
M0120130700010003,M0120130700010004     130701002      320C#LINQ