Use the below code:
public class UnionObjects
{
public static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
DataRow dr = dt.NewRow();
dr["Column1"] = "Col Val -1";
dr["Column2"] = "Col2 Val -1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Column1"] = "Col Val -2";
dr["Column2"] = "Col2 Val -2";
dt.Rows.Add(dr);
DataTable dtc = dt.Clone();
dr = dtc.NewRow();
dr["Column1"] = "Col Val -3";
dr["Column2"] = "Col2 Val -3";
dtc.Rows.Add(dr);
dr = dtc.NewRow();
dr["Column1"] = "Col Val -4";
dr["Column2"] = "Col2 Val -4";
dtc.Rows.Add(dr);
dt.AcceptChanges();
dtc.AcceptChanges();
var query1 = from row in dt.AsEnumerable()
select row;
var query2 = from row in dtc.AsEnumerable()
select row;
IEnumerable<DataRow> rowCollection = query1.Union(query2);
DataTable dtNew = dt.Clone();
foreach (DataRow row in rowCollection)
dtNew.ImportRow(row);
foreach (DataRow row in dtNew.Rows)
Console.WriteLine(string.Format("{0} -- {1}", row["Column1"].ToString(), row["Column2"].ToString()));
Console.Read();
}
}
Thanks