【发布时间】:2016-04-27 02:33:30
【问题描述】:
我想从数据表中删除不需要的列并按预定义的顺序排列列的顺序
例如,我的表格列如下,
Col2|Col1|Col3|Test|Test1|Col5|Col4|Some col name|Col6
我想删除 Test、Test1 和 Some col 名称并按数据表重新排序为以下格式
Col1|Col2|Col3|Col4|Col5|Col6
// I need the below columns
List<string> tableColumns = new List<string>();
tableColumns.Add("Col1");
tableColumns.Add("Col2");
tableColumns.Add("Col3");
tableColumns.Add("Col4");
tableColumns.Add("Col5");
tableColumns.Add("Col6");
List<DataColumn> tblColumns = MyDataTable.Columns.Cast<DataColumn>().ToList();
//Remove unwanted columns
foreach (DataColumn col in tblColumns)
{
if (!tableColumns.Contains(col.ColumnName.Trim()))
{
MyDataTable.Columns.Remove(col);
}
}
现在如何按以下顺序重新排列列?
Col1|Col2|Col3|Col4|Col5|Col6
我在下面的代码中尝试过,但是如果 tableColumns 中的所有项目都不存在于数据表中,则它会失败。 有时数据表列名也有一些空格(例如“Col1”)
foreach (var col in tableColumns)
{
MyDataTable.Columns[col].SetOrdinal(tableColumns.IndexOf(col));
}
删除不需要的列并重新排列列的最佳方法是什么?
【问题讨论】:
标签: c# linq datatable datacolumn reorderlist