linq 对datatable 分组

场景:C# Linq对DataTable分组求和解决思路

C# Linq对DataTable分组求和
以下是代码:
  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      320
C# LINQ

------解决方案--------------------


参考http://bbs.****.net/topics/380267995
------解决方案--------------------
select new {
    单据编号 = string.Join(",", x.Select(y => y.Field<string>("PM")),
    工单号 = x.Key,
    数量 = x.Select(y => y.Field<decimal>("SL").Sum()
}