如何从数据表中获取列名包含“ColumnName”的列索引

-2 c# linq lambda datatables

我有一个包含动态创建的列的数据表:

Name | Role | Comm w1 | Role | Comm w2 | .... | Total Comm |
Run Code Online (Sandbox Code Playgroud)

我想获取包含Comm.

预期的结果应该是:

2
4
...
Run Code Online (Sandbox Code Playgroud)

Bla*_*tad 5

您可以使用 LINQ 轻松完成此操作。

首先,我们需要将 Columns 转换为 DataColumn,因为 LINQ 需要它,IEnumerable<DataColumn>而 Columns 是DataColumnCollection. 然后将列限制为包含“Comm”的列,然后选择每列的序数,然后将其设为列表。

List<int> columnIndexes = dt.Columns.Cast<DataColumn>()
    .Where(column => column.ColumnName.Contains("Comm"))
    .Select(column => column.Ordinal).ToList();
Run Code Online (Sandbox Code Playgroud)