2017-11-29 6 views
0

Excelファイルからデータセットをロードしています。私はDataTable tableと最初のテーブルをつかむ。私はint startingIndexで始まるデータテーブルを返したいと思います。 startingIndex後にすべての行をループループに使用している私が見るこのためC#DataTableをインデックス[x]から末尾にコピー

DataTable table = GetDtFromFile(); 
DataTable results; 
table.Rows.CopyTo(results, startingIndex); 
return results; 

のみのソリューションと個別に上の行をコピーします。私のような何かをしたいです。これは愚かで不必要なようです。

私はこれを行う方法について見ていないよ!ありがとう!


他の試み:

DataTable table = GetDtFromFile(); 
DataTable results; 
int size = table.Rows.Count - startingRow; 
DataRow[] temp = new DataRow[size]; 
table.Rows.CopyTo(temp, startingRow); 
results.Rows = temp; 

これはDataTable.Rowsが読み取り専用であるresults.Rowsにエラーが発生しました。 (これも不必要に複雑に思えます)。

+0

が、私はこのための3つのソリューションを参照してください。a)のテーブルを取得し、それを複製し、テーブルを取得)新しいテーブルbにデータをコピーするためにループを使用します( '.Copy() ')索引の前の行を削除し、c)Excel読み込みライブラリを使用し、必要なデータだけを使用します。 – Michael

答えて

3

ありがとうございますlinq!

回答:

DataTable table = GetDtFromFile(); 
DataTable results; 
int startingRow = GetStartingRow(); 
int size = table.Rows.Count - startingRow; 
results = table.AsEnumerable().Skip(startingRow).Take(size).CopyToDataTable(); 
関連する問題