2016-09-22 5 views
0

私はデータテーブルを作成する ".xml"ファイルを読んでいます。データテーブルの列は、 ".xml"ファイルによって異なります。 以下はその例です。 enter image description hereデータテーブルの列を結合する

例のように、data1、data2、data3 ...などは.xmlファイルから取得されます。カラムヘッダー(item1、item2、item3 ...など)に対して、データ(a、b、c、d、as、asdなど)が追加されます。

行の内容に関して列をマージしたいと考えています。第1列(item1)のdata1を第4列(item4)のdata1にマージし、第4列を削除しなければならない。出来ますか? enter image description here

+0

あなたはもっと詳しく説明します

以下

が予想される出力のですか? –

+0

@ user6002727最初の行の内容が同じ場合は、列をマージします。 –

+0

最初の列に** asd **はありませんか?どのようにして期待される成果をあげることができますか? –

答えて

2

これを実行してください:

static DataTable GetTable() 
    { 
     // Here we create a DataTable with four columns. 
     DataTable table = new DataTable(); 
     table.Columns.Add("Item1", typeof(string)); 
     table.Columns.Add("Item2", typeof(string)); 
     table.Columns.Add("Item3", typeof(string)); 
     table.Columns.Add("Item4", typeof(string)); 

     // Here we add five DataRows. 
     table.Rows.Add("a", "as", "asd", ""); 
     table.Rows.Add("b", "asd", "asd", ""); 
     table.Rows.Add("c", "a", "asd", ""); 
     table.Rows.Add("d", "a", "asd", ""); 
     table.Rows.Add("", "", "", "a"); 
     table.Rows.Add("", "", "", "d"); 
     table.Rows.Add("", "", "", "asd"); 
     return table; 
    } 

    DataTable dt = GetTable(); 
    foreach (DataRow dr in dt.Rows) 
    { 
     if (!String.IsNullOrEmpty(dr["Item4"].ToString()) && String.IsNullOrEmpty(dr["Item1"].ToString())) 
     { 
      dr["Item1"] = dr["Item4"].ToString(); //assign value of column 4 to column1 
     } 
    } 
    dt.Columns.Remove("Item4"); //delete column 4 
+0

ありがとうございます:)その働き。 –

関連する問題