본문 바로가기

IT

C# Clone() 함수 사용법과 예제

※ 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