2017-11-29 12 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

나는이 세 가지 솔루션을 참조하십시오) 표를 얻고 그것을 복제, 표를 얻을) 새 테이블 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();