2017-05-08 63 views
0

我有一個DataTable最小36000列,20000行最小。我有一個硬編碼的列名列表,我需要在數據表中找到並對每列的值執行一些計算。在C#中搜索DataTable#

特定列

我想用一個簡單的foreach找到列名和執行我的計算方法datatable.compute的所有行的e.g總和。

有沒有更好的方法來實現這一目標?任何幫助是極大的讚賞。

謝謝。

我使用的.Net 4.6和VS2015

+10

36000列的foreach一個樣本?哇 – InBetween

+0

你對36000列和20000行做了什麼? –

+0

是的,更好的方法是使用比大型數據表更適合的存儲介質。 – Equalsk

回答

0

更多表現其良好的使用並行的方法。

此鏈接有一個示例供您使用並行,並且在每個可能的地方使用它都非常好。

this example你會看到多少會提高你的速度。

+0

但不要忘記edite ui parametrs內部並行或並行foreach你需要使用調用 –

+0

你試過嗎? –

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 through DataTable 
double sum = 0; 
dt = ds.Tables["Orders"]; 
foreach (DataRow dr in dt.Rows) 
{ 
    sum += System.Convert.ToDouble(dr["Total"]); 
}