0

次の要件を満たすコードを正しく取得するのに苦労しています。

要件: 配列内のデータ テーブルからデータ列の名前を取得するには、序数が lstSnapshotExclusiveCols に存在するもの、つまり整数のリストを除きます。

誰かが期待される結果を得るのを手伝ってくれませんか。次のコードを使用していますが、すべてのデータ列を返し、何もスキップしません。

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 に答える