0
我有一個如下所示的數據表。我很難創建一個簡單的方法來組合像我列出的行。我需要能夠執行各種計算,例如爲一個ID累加所有年份,累計一年或類似的所有ID。我還需要系統地將一個id的所有年份和值分配給一組文本框,變量,或者我可以在邏輯上訪問它們。我想我最大的問題是確定如何轉換數據表,什麼是處理我需要做的最好的方法。C#數據表格到多維數組
當前
ID Year Value
1 2010 25
1 2010 25
1 2009 30
1 2008 5
1 2008 5
1 2008 5
2 2010 1
2 2010 4
2 2009 0
2 2008 25
2 2008 25
2 2008 25
我想要什麼
ID Year Value
1 2010 50
2009 30
2008 15
2 2010 5
2009 0
2008 75
我不能提交答案了,但是這是比較什麼,我要去了謝謝大家對你的幫助。
var Groups =
from DataRow row in dataset1.datatable1.Rows
group row by row["id"] into newGroup1
from newGroup2 in
(from row in newGroup1
group row by row["year"]).Distinct()
group newGroup2 by newGroup1.Key;
foreach (var outerGroup in Groups)
{
Console.WriteLine("Level = {0}", outerGroup.Key);
foreach (var innerGroup in outerGroup)
{
Console.WriteLine("Data = {0}", innerGroup.Key);
foreach (var innerGroupElement in innerGroup)
{
Console.WriteLine("\t\t{0}", innerGroupElement["Value"]);
}
}
}
這給了我這樣的:
ID:1
Year:2008
Value:15
Year:2009
Value:30
Year:2010
Value:50
ID:2
Year:2008
Value:75
Year:2009
Value:0
Year:2010
Value:5
參見[高效的DataTable集團通過( HTTP:// stackoverfl ow.com/questions/8472005/efficient-datatable-group-by) – YetAnotherUser 2012-07-25 14:48:29
看看[使用LINQ進行分組](http://code.msdn.microsoft.com/LINQ-to-DataSets-Grouping-c62703ea) – waldrumpus 2012-07-25 14:51:53