Sam*_*Sam 2 c# linq aggregate dataset
如何聚合(使用linq)数据集的一列的值,而另一列是相同的.
例如,我的专栏是
Row1 Row2
2 3
4 5
6 7
2 2
6 4
7 4
2 4
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西
Row1 Row2
2 9
4 5
6 11
7 4
Run Code Online (Sandbox Code Playgroud)
编辑:"Row2"中的值是"Row1"的编号.所以(例如:2)的值必须聚合到一个新的数据表中,其中只有(2)的单个条目. 如果问题含糊不清,我很抱歉.
您可以使用LINQ聚合行并将结果复制到新表:
DataTable source = // whatever
DataTable dest = source.Clone();
var aggregate = source
.AsEnumerable()
.GroupBy(row => row.Field<int>("Row1"))
.Select(grp => new { Row1 = grp.Key, Row2 = grp.Select(r => r.Field<int>("Row2")).Sum() });
foreach(var row in aggregate)
{
dest.Rows.Add(new object[] { row.Row1, row.Row2 });
}
Run Code Online (Sandbox Code Playgroud)