[c#] C #의 DataTable에서 열 제거

함수 호출에서 다시 전달되는 DataTable을 얻는 DataSet이 있습니다. 15-20 개의 열이 있지만 10 개의 데이터 열만 필요합니다.

원하지 않는 열을 제거하고 원하는 열만 정의 된 다른 열로 DataTable을 복사하거나 컬렉션을 반복하고 필요한 열을 사용하는 것이 더 낫습니다.

고정 길이 데이터 파일에 값을 써야합니다.



답변

대역폭과 메모리를 줄이기 위해 선택한 열을 제한하는 것 외에도 :

DataTable t;
t.Columns.Remove("columnName");
t.Columns.RemoveAt(columnIndex);


답변

원하는 열 이후의 모든 열을 제거하려면 아래 코드가 작동해야합니다. 열 수가 10 개 이하가 될 때까지 인덱스 10에서 제거됩니다 (열이 0 기반임을 기억).

DataTable dt;
int desiredSize = 10;

while (dt.Columns.Count > desiredSize)
{
   dt.Columns.RemoveAt(desiredSize);
}


답변

질문은 이미 답변 된 것으로 표시되었지만 그 사람이 DataTable.

그래서 여기에 동일한 문제가 발생했을 때 제가 한 일이 있습니다.

string[] ColumnsToBeDeleted = { "col1", "col2", "col3", "col4" };

foreach (string ColName in ColumnsToBeDeleted)
{
    if (dt.Columns.Contains(ColName))
        dt.Columns.Remove(ColName);
}


답변