C# 合并数据表的列

C# 合并数据表的列,c#,datatable,C#,Datatable,我正在读取一个“.xml”文件,我将从中创建一个数据表。数据表的列取决于“.xml”文件。 下面是一个例子。 如示例所示,data1、data2、data3。。。etc将从.xml文件中提取。数据(a、b、c、d、as、asd…等)是相对于列标题(第1项、第2项、第3项…等)添加的 我想合并与行内容相关的列。i、 e.第一列(项目1)的数据1应与第四列(项目4)的数据1合并,第四列应删除。可能吗 以下是预期产出: 请执行以下操作: static DataTable GetTable()

我正在读取一个“.xml”文件,我将从中创建一个数据表。数据表的列取决于“.xml”文件。 下面是一个例子。

如示例所示,data1、data2、data3。。。etc将从.xml文件中提取。数据(a、b、c、d、as、asd…等)是相对于列标题(第1项、第2项、第3项…等)添加的

我想合并与行内容相关的列。i、 e.第一列(项目1)的数据1应与第四列(项目4)的数据1合并,第四列应删除。可能吗

以下是预期产出: 请执行以下操作:

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
请这样做:

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
公共数据表组合数据表(数据表dt1、数据表dt2)
{
DataTable dtNew=新DataTable();
foreach(dt1.Columns中的数据列col)
{
dtNew.Columns.Add(col.ColumnName);
}
foreach(dt2.Columns中的数据列col)
{
dtNew.Columns.Add(col.ColumnName);
}
对于(int i=0;i
公共数据表组合数据表(数据表dt1,数据表dt2)
{
DataTable dtNew=新DataTable();
foreach(dt1.Columns中的数据列col)
{
dtNew.Columns.Add(col.ColumnName);
}
foreach(dt2.Columns中的数据列col)
{
dtNew.Columns.Add(col.ColumnName);
}

对于(int i=0;我需要您详细说明吗?@user6002727如果第一行的内容相同,我想合并列。但是第一列中没有asd?那么您如何给出预期输出?@user6002727预期输出在合并第一列和第四列后Huu Thien Tan Nguyen已经回答了您的问题,如果不起作用,请告诉我?您是否可以继续laborate more?@user6002727如果第一行的内容相同,我想合并列。但是第一列中没有asd?那么您如何给出预期输出?@user6002727预期输出在合并第一列和第四列后Huu Thien Tan Nguyen已经回答了您的问题,如果不工作,请告诉我?