35個以上の列を持つcsvファイルを持っていて、csvリーダーを使用してデータテーブルに配置され、残りの列を4列見つけます、4つの列がランダムなインデックスになる可能性がありますので、ヘッダーの名前を検索します。DataTable内のデータ列を名前で保持して削除する
は、これまでのところ私はこれを持っている:
DataTable dataTable = new DataTable();
dataTable = CSVReader.CSVInput(filepath);
foreach(DataColumn dataColumn in dataTable.Columns)
{
if(dataColumn.ColumnName != "Cat" || dataColumn.ColumnName != "Dog" || dc.ColumnName != "Turtle " || dc.ColumnName != "Lion")
{
dataTable.Columns.Remove(dataColumn)
}
}
猫、犬、カメとライオンは私が
を維持したい列の例はこれがちょうど最初の列を削除し、というエラーを表示します"コレクションが変更されました"。
私はこのようにしたいので、私はdatatableをsqlbulkcopyすることができます。別のデータテーブルを作成する
EDIT
は、あなたがそれの上に列挙されている間は、コレクションを変更することはできませんメモリ
おかげで、私は別のDataTableを作成し、メモリを使い果たし、そしてdataTable.columns.remove(DataColumnのは)ちょうど –
@MaxHughesテーブルからすべての列を削除する - 確かにそれはあるべき '&&'ない '' ||つまり、if(dataColumn.ColumnName!= "Cat" && dataColumn.ColumnName!= "Dog" && dc.ColumnName!= "Turtle" && dc.ColumnName!= "Lion") 'のようになります。私はその解決策でこの答えを試すことをお勧めします。 – dbc
@dbcはそれほど大きな違いはないと思いましたが、うまくいきました。ありがとう! –