我正在努力使代码符合我的以下要求:
要求: 从数组中的数据表中获取datacolumns的名称除了在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))
答案 0 :(得分:4)
请勿使用SkipWhile(...)
。一个简单的Where(...)
就可以解决问题:
Dim columnNames = ldtCurrentData.Columns.Cast(Of DataColumn)()
.Where(Function(column)
Not lstSnapshotExcludingCols.Contains(column.Ordinal))
.Select(Function(column) column.ColumnName).ToArray()