在C#中,可以使用LINQ查询语句来对DataTable中的相等数据进行求和,并将结果传递给新的DataTable。下面是一个完整的示例代码:
using System;
using System.Data;
using System.Linq;
class Program
{
static void Main()
{
// 创建一个示例的DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Value", typeof(int));
// 添加一些数据
dataTable.Rows.Add("A", 10);
dataTable.Rows.Add("B", 20);
dataTable.Rows.Add("A", 30);
dataTable.Rows.Add("C", 40);
dataTable.Rows.Add("B", 50);
// 使用LINQ查询语句对相等数据进行求和,并将结果传递给新的DataTable
var result = from row in dataTable.AsEnumerable()
group row by row.Field<string>("Name") into grp
select new
{
Name = grp.Key,
Sum = grp.Sum(r => r.Field<int>("Value"))
};
// 创建新的DataTable并将结果添加到其中
DataTable newDataTable = new DataTable();
newDataTable.Columns.Add("Name", typeof(string));
newDataTable.Columns.Add("Sum", typeof(int));
foreach (var item in result)
{
newDataTable.Rows.Add(item.Name, item.Sum);
}
// 打印新的DataTable中的数据
foreach (DataRow row in newDataTable.Rows)
{
Console.WriteLine(row["Name"] + ": " + row["Sum"]);
}
}
}
这段代码首先创建了一个示例的DataTable,并添加了一些数据。然后使用LINQ查询语句对相等数据进行求和,并将结果传递给一个匿名类型的集合。接着创建了一个新的DataTable,并将结果添加到其中。最后打印新的DataTable中的数据。
这个示例中使用了LINQ查询语句和匿名类型,可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云