C# 如何合并两个名称相同但区分大小写的数据表?
我从两个来源获得动态数据。列名相同,但大小写不同。合并数据表时,它将创建重复的列。我希望与相同的列合并,而不考虑大小写 代码: 我在dataTable1中的列名是:C# 如何合并两个名称相同但区分大小写的数据表?,c#,datatable,C#,Datatable,我从两个来源获得动态数据。列名相同,但大小写不同。合并数据表时,它将创建重复的列。我希望与相同的列合并,而不考虑大小写 代码: 我在dataTable1中的列名是: Title filePath 我在dataTable2中的列名是: title FilePath 应考虑这两个列相同。 霉菌代码: public void TestOnMergeDataTables() { DataTable dt = new DataTable("Order");
Title
filePath
我在dataTable2中的列名是:
title
FilePath
应考虑这两个列相同。
霉菌代码: public void TestOnMergeDataTables()
{
DataTable dt = new DataTable("Order");
DataColumn dc = dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(String));
dt.Rows.Add(1, "pramod");
dt.Rows.Add(2, "ravi");
dt.Rows.Add(3, "deepak");
dt.Rows.Add(4, "kiran");
dt.Rows.Add(5, "madhu");
DataTable dt2 = new DataTable("Order");
DataColumn dc2 = dt2.Columns.Add("ID", typeof(int));
dt2.Columns.Add("name", typeof(String));
dt2.Columns.Add("Type", typeof(String));
dt2.Rows.Add(6, "ashu", "Gen");
dt2.Rows.Add(7, "rudra", "Gen");
dt2.Rows.Add(8, "kavita", "Gen");
dt2.Rows.Add(9, "suman", "Gen");
dt2.Rows.Add(10, "lakshman", "Gen");
dt.Merge(dt2,true);
}
结果:
它应该将Name、Name列视为相同的列一种简单的方法是使用linq。这不会删除列中存在的重复项。要删除重复项,必须使用GroupBy
var mergedTable = dataTable1.AsEnumerable()
.Select(row => new { Key = dataRow["Title"], Row = dataRow })
.Union(dataTable1.AsEnumerable()
.Select(row => new { Key = dataRow["title"], Row = dataRow }))
.CopyToDataTable();
如果你能分享一个,那就太棒了。请发布你试图解决这个问题的尝试。目前,你的问题是要求我们创造一些尚不存在的东西,而不是修复一些不起作用的东西。因此,只关注后者,而前一类问题最终被关闭为离题。我不知道专栏名称。你能提供一个最小重复的例子吗?
var mergedTable = dataTable1.AsEnumerable()
.Select(row => new { Key = dataRow["Title"], Row = dataRow })
.Union(dataTable1.AsEnumerable()
.Select(row => new { Key = dataRow["title"], Row = dataRow }))
.CopyToDataTable();