在C#中搜索DataTable

时间:2017-05-08 10:50:13

标签: c# linq datatable

我有一个DataTable,最少36000列,最少20000行。我有一个硬编码的列名列表,我需要在数据表中找到它,并对每列的值执行一些计算。

例如特定列的所有行的总和

我在考虑使用简单的foreach来查找列名和datatable.compute方法来执行我的计算。

有没有更好的方法来实现这一目标?任何帮助是极大的赞赏。

谢谢。

我正在使用.Net 4.6和VS2015

2 个答案:

答案 0 :(得分:0)

为了获得更好的性能,可以使用并行方法。

这个链接有一个供你平行使用的样本,非常适合在任何可能的地方使用它。

this example,您会看到提高速度的程度。

答案 1 :(得分:0)

您可以比较Datatable.Compute和Foreach之间的性能差异。

// Datatable.Compute sample
DataTable table;
table = dataSet.Tables["Orders"];

// Declare an object variable.
object sumObject;
sumObject = table.Compute("Sum(Total)", "EmpID = 5");

以下是foreach的样本

// Foreach through DataTable
double sum = 0;
dt = ds.Tables["Orders"];
foreach (DataRow dr in dt.Rows)
{
    sum += System.Convert.ToDouble(dr["Total"]);
}