0

我正在努力使代码适合我的以下要求:

要求:从数组中的数据表中获取数据列的名称,除了在 lstSnapshotExcludingCols 中存在 Ordinal 的列,即整数列表。

有人可以帮助我获得预期的结果。我正在使用以下代码,但它返回所有数据列并且不跳过任何内容。

Dim columnNames = ldtCurrentData.Columns.Cast(Of DataColumn)()
                  .SkipWhile(Function(column) 
                             lstSnapshotExcludingCols.Contains(column.Ordinal))
                  .Select(Function(column) column.ColumnName).ToArray()

从数据行中选择数据时,我遇到了类似的问题:

Dim fields = row.ItemArray.SkipWhile(Function(value, index) lstSnapshotExcludingCols.Contains(index))
4

1 回答 1

4

不要用户SkipWhile(...)。一个简单Where(...)的方法就可以了:

Dim columnNames = ldtCurrentData.Columns.Cast(Of DataColumn)()
                 .Where(Function(column) 
                    Not lstSnapshotExcludingCols.Contains(column.Ordinal))
                 .Select(Function(column) column.ColumnName).ToArray()
于 2012-06-11T19:01:56.027 回答