C#的DataTable选择列,其中列名状

Cam*_*ron 2 c# linq datatable

我想选择一个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)

有任何想法吗?谢谢。

Tim*_*ter 5

我会使用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)