programing

C#의 DataTable에서 열 제거

muds 2023. 5. 1. 22:04
반응형

C#의 DataTable에서 열 제거

함수 호출에서 반환되는 DataTable을 가져오는 DataSet이 있습니다.15-20개의 열이 있지만 데이터 열만 있으면 됩니다.

원하지 않는 열을 제거하거나 원하는 열만 정의된 다른 열로 데이터 테이블을 복사할 수 있는 방법이 있습니까? 아니면 컬렉션을 반복하고 필요한 열만 사용하는 것이 더 나은 방법입니까?

저는 그 값들을 고정된 길이의 데이터 파일에 써야 합니다.

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

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);
}

다음과 같이 원하는 열을 선택하면 됩니다.

Dim Subjects As String = "Math, English"
Dim SubjectData As DataTable = Table.AsDataView.ToTable(True, Subjects.Split(","))

언급URL : https://stackoverflow.com/questions/75123/remove-columns-from-datatable-in-c-sharp

반응형