2010-04-07 43 views
0

哪種方法可以按給定條件對DataTable中的數據進行求和?按給定條件在DataTable中總和值

我有如下表:

KEY_1 
KEY_2, 
VALUE_1, 
VALUE_2 

輸入:

01101, P, 2, 3 
01101, F, 1, 1 
01101, P, 4, 4 
10102, F, 5, 7 

所需的輸出(新的DataTable):

01101, P, 6, 7 
01101, F, 1, 1 
01101, SUM, 7, 8 
10102, F, 5, 7 
10102, SUM, 5, 7 

我需要高效的算法,因爲我有10K行和DataTable中的18列。

謝謝。

+0

你真的需要更準確地描述你正在嘗試做什麼......你的例子對我們來說不是很清楚;) – 2010-04-07 14:50:38

+0

一些代碼也不錯! – 2010-04-07 14:55:12

+0

我需要爲自定義報告引擎準備數據。這很奇怪,我知道。但是這是任務。我無法啓動sql查詢並獲得期望的值,因爲對於如此多的數據來說這是非常昂貴的操作。 – 2010-04-07 14:55:51

回答

0

您可能需要考慮使用LINQ - 它有一個GroupBy運算符,它可以讓您在給定的數據大小的情況下以相對良好的性能輕鬆完成此操作。

如果你需要一個超優化的實現,則可能需要創建自己的中間數據結構來表示,基於關鍵某種字典的總結記錄,存儲,並在更新它,你循環每個記錄。

+0

謝謝你的回答!我的應用程序在.net 2.0上運行:(字典會有很大的開銷嗎?它至少包含5k個元素 – 2010-04-07 15:02:08

+0

只要你使用的密鑰具有良好的散列值分佈,字典就可以很好地擴展。比其他算法(如嵌套循環)快得多。 – LBushkin 2010-04-07 16:37:33