113 함수 호출에서 다시 전달되는 DataTable을 얻는 DataSet이 있습니다. 15-20 개의 열이 있지만 10 개의 데이터 열만 필요합니다. 원하지 않는 열을 제거하고 원하는 열만 정의 된 다른 열로 DataTable을 복사하거나 컬렉션을 반복하고 필요한 열을 사용하는 것이 더 낫습니다. 고정 길이 데이터 파일에 값을 써야합니다. c# asp.net — 브라이언 G 소스 내가받은 데이터 세트를 제어 할 수 없습니다. 내가 아는 유일한 것은 그것이 모든 것을 포함하고 있다는 것입니다. — Brian G
302 대역폭과 메모리를 줄이기 위해 선택한 열을 제한하는 것 외에도 : DataTable t; t.Columns.Remove("columnName"); t.Columns.RemoveAt(columnIndex); — 톰 리터 소스 13 명확히하기 위해 : 이것은 DataTable빈 .NET뿐만 아니라 이미 기존 행 이있는 경우에도 작동합니다 DataTable. — Uwe Keim
23 원하는 열 이후의 모든 열을 제거하려면 아래 코드가 작동해야합니다. 열 수가 10 개 이하가 될 때까지 인덱스 10에서 제거됩니다 (열이 0 기반임을 기억). DataTable dt; int desiredSize = 10; while (dt.Columns.Count > desiredSize) { dt.Columns.RemoveAt(desiredSize); } — 티모시 카터 소스 1 내 2C, 나는 악몽 유지 보수에 열 인덱스 리드와 협력,이 솔루션을 좋아하지 않아 .. — 로베르토 1 질문에는 "..columns defined that I want .."라는 문이 포함되어 있으므로 필요한 열이 반드시 순차적 인 순서는 아니므로 "처음 10 개 열이 필요합니다"라고 말할 수 없습니다. 이러한 솔루션은 그가 원하는 열 이름의 배열을 포함해야하므로이 "정의 된"이름 집합에 속하지 않는 다른 모든 항목을 제거 할 수 있습니다. 이를 구현하는 다양한 방법; 간단한 foreach 루프에서 IN을 사용하는 쿼리 또는 linq까지. — Roberto
3 질문은 이미 답변 된 것으로 표시되었지만 그 사람이 DataTable. 그래서 여기에 동일한 문제가 발생했을 때 제가 한 일이 있습니다. string[] ColumnsToBeDeleted = { "col1", "col2", "col3", "col4" }; foreach (string ColName in ColumnsToBeDeleted) { if (dt.Columns.Contains(ColName)) dt.Columns.Remove(ColName); } — SU7 소스