C# 删除并替换列名称DataTable c
我有这样一个数据表:C# 删除并替换列名称DataTable c,c#,asp.net,.net,asp.net-core,C#,Asp.net,.net,Asp.net Core,我有这样一个数据表: DataTable dataTable = new DataTable(); dataTable.Columns.Add("A", typeof(string)); dataTable.Columns.Add("B", typeof(string)); dataTable.Columns.Add("C", typeof(string)); List<string> headersT
DataTable dataTable = new DataTable();
dataTable.Columns.Add("A", typeof(string));
dataTable.Columns.Add("B", typeof(string));
dataTable.Columns.Add("C", typeof(string));
List<string> headersToSkip = new List<string>() { "A", "B" };
Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
IEnumerable<DataColumn> queriableColumms = dataTable.Columns.Cast<DataColumn>().AsQueryable().ToList();
var toBeRemoved = from DataColumn column in queriableColumms
where headersToSkip != null && headersToSkip.Contains(column.ColumnName)
select column;
foreach (DataColumn column in toBeRemoved)
{
dataTable.Columns.Remove(column);
}
if (headersToReplace != null)
{
foreach (KeyValuePair<string, string> kvp in headersToReplace)
{
foreach (DataColumn column in dataTable.Columns.Cast<DataColumn>().AsQueryable().ToList())
{
if (column.ColumnName.Equals(kvp.Key))
column.ColumnName = kvp.Value;
}
}
}
Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
foreach(var header in headersToReplace)
{
dataTable.Columns[header.Key].ColumnName = header.Value;
}
是否可以高效地删除DataTable中的列并用其他列名替换列名。高效地,如果您的意思是用更少的代码,您可以执行以下操作
Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
foreach(var header in headersToReplace)
{
dataTable.Columns[header.Key].ColumnName = header.Value;
}
删除列
List<string> headersToSkip = new List<string>() { "A", "B" };
foreach(var header in headersToSkip)
{
dataTable.Columns.Remove(header);
}
Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
foreach(var header in headersToReplace)
{
dataTable.Columns[header.Key].ColumnName = header.Value;
}
要重命名列
Dictionary<string, string> headersToReplace = new Dictionary<string, string>() { { "C", "D" } };
foreach(var header in headersToReplace)
{
dataTable.Columns[header.Key].ColumnName = header.Value;
}
在一个快速测试中,只需更改.ColumnName即可正常工作。。。有什么事不能做吗?