※ Clone() 메서드란?
Clone()은 기존 DataTable의 구조만 복사하는 메서드입니다.
즉, 열(Column) 정보만 복사하고,
데이터(Row)는 복사하지 않습니다.
예시
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Rows.Add(1, "김희선");
dt.Rows.Add(2, "김사랑"); // 구조만 복사
DataTable table = dt.Clone();
결과
table.Columns | dt와 동일한 열 구조(ID, Name 있음) |
table.Rows | 아무것도 없음 (빈 테이블) |
※ 구조만 복사 vs 내용까지 복사
Clone() | 구조만 복사 (Columns만 복사, Rows는 없음) |
Copy() | 구조 + 데이터 모두 복사 (Columns + Rows 모두 복사됨) |
예시
DataTable copy = dt.Copy(); // 데이터까지 다 들어감
DataTable clone = dt.Clone(); // 구조만 들어감 (빈 테이블)
※ 언제 Clone()을 사용하나요?
==> 필터링해서 일부 데이터만 복사하고 싶을 때
DataTable filtered = dt.Clone(); // 구조 복사
foreach (DataRow row in dt.Rows)
{
if ((int)row["ID"] > 1)
filtered.ImportRow(row); // 원하는 데이터만 가져옴
}
결과
이렇게 하면 ID > 1 조건을 만족하는 행만 새 테이블에 들어갑니다.
※ 요약
DataTable table = dt.Clone(); | dt의 열 구조만 복사, 데이터는 없음 |
Clone() | 빈 테이블 생성 (열만 존재) |
Copy() | 열 + 행 전체 복사 |
'IT' 카테고리의 다른 글
C# SWICH 문 예제 (0) | 2025.04.02 |
---|---|
C# 델리게이트 이벤트핸들러 사용 예제 (0) | 2025.03.28 |
C# 델리게이트 이해 및 예제 (0) | 2025.03.28 |
C# Func 사용법 예제 (0) | 2025.03.25 |
C# foreach 와 for 문 LINQ 사용법 (2) | 2025.03.25 |