datatable 合并 数据
我 有 一个 dt 存的数据 是 这样的
name oid money
A 1 10
B 1 10
C 1 10
D 1 10
A 2 20
C 3 10
显示成
name oid money
A,B,C,D 1 40
A 2 20
C 3 10
[解决办法]
DataTable dtable = new DataTable();
dtable.Columns.Add("name",typeof(string));
dtable.Columns.Add("oid", typeof(int));
dtable.Columns.Add("money", typeof(int));
dtable.Rows.Add(new object[] { "A", 1, 10 });
dtable.Rows.Add(new object[] { "B", 1, 10 });
dtable.Rows.Add(new object[] { "C", 1, 10 });
dtable.Rows.Add(new object[] { "D", 1, 10 });
dtable.Rows.Add(new object[] { "A", 2, 20 });
dtable.Rows.Add(new object[] { "C", 3, 10 });
var dtquery = from dt in dtable.AsEnumerable()
group dt by dt.Field<int>("oid") into g
select new
{
name = String.Join(",", g.Select(x => x.Field<string>("name")).ToArray()),
oid = g.Key,
money = g.Sum(x => x.Field<int>("money"))
};
foreach (var dd in dtquery)
{
Console.WriteLine(dd.name + "\t" + dd.oid + "\t" + dd.money);
}