2016-09-21 11 views
0

を追加し、私は2のDataTableのC#DataTableのマージと値

を持ってTABLE1

Type  Count 

Orange   2 
Apple   3 
Pear   6 

TABLE2

Type  Count 

Orange   3 
Pear   2 
Pineapple  1 
Banana   4 

私は表1と表2 を組み合わせて、両方の数を追加したいです。一例として、表3

TABLE3

Type  Count 

    Orange   5 
    Apple   3 
    Pear   8 
    Pineapple  1 
    Banana   4 

答えて

1

あなたは種類によってグループにLinq-To-DataTableを使用して、カウントを合計することができますLINQのツーのDataTableに精通

var typeGroups = Table1.AsEnumerable() 
    .Concat(Table2.AsEnumerable())    // all rows in one sequence 
    .GroupBy(row => row.Field<string>("Type")); // group all by type 
DataTable Table3 = Table1.Clone();    // empty, same columns 
foreach (var typeGroup in typeGroups) 
{ 
    DataRow newRow = Table3.Rows.Add();   // added already now 
    newRow.SetField("Type", typeGroup.Key); 
    newRow.SetField("Count", typeGroup.Sum(row => row.Field<int>("Count"))); 
} 
+0

申し訳ありません。マージするテーブルが2つ以上ある場合は? – Jonathan

+0

@Jonathan:複数の 'Concats':' t1.AsEnumerable()。Concat(t2.AsEnumerable())。Concat(t3.AsEnumerable())... GroupBy(....) 'を使います。 –

+0

私はそれをどのようにループすることができますか? – Jonathan