我想选择一个DataTable以字符“赫兹”开头的所有列。目前,我这样做:
var uploadTable = dataTable.DefaultView.ToTable(false, "locID", "hz1582", "hz1581", "hz1580", "hz1579", "hz1578", "hz1577", "hz1576", "hz1575", "hz1574", "hz1573", "hz1572", "hz1571");
Run Code Online (Sandbox Code Playgroud)
但是,每次运行代码时,“ hz”列都是可变的,因此我需要某种方式选择表中以hz开头的所有列。还要注意的是,列“LOCID”始终存在,并且要返回的需求。所以,我需要这样的:
var uploadTable = dataTable.DefaultView.ToTable(false, "locID", "hz%");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢。
我会使用LINQ此任务:
DataTable uploadtable = dataTable.Copy();
var removeColumns = dataTable.Columns.Cast<DataColumn>()
.Where(c => !c.ColumnName.StartsWith("hz", StringComparison.InvariantCultureIgnoreCase));
foreach (DataColumn colToRemove in removeColumns)
uploadtable.Columns.Remove(colToRemove.ColumnName);
Run Code Online (Sandbox Code Playgroud)