IT/C#

[C#] Clone a List. 리스트 복제하는 간단한 방법과 주의할 점.

Ella.J 2023. 9. 6. 15:39
728x90
반응형

 

C# List<T> 사용 시 단순하게 기존 List를 새로운 List에 할당하는 방법은 복제하는 것과는 차이가 있다.

요즘 과몰입 중인 스우파,, 멤버들을 넣어서 예시를 만들어봤다. (바다언니 사랑해요❤)

 

아래 코드는 잘못된 예시를 보여준다.

List는 참조 형식이고 다른 데이터 형식의 변수들처럼 member2 = member1; 으로 할당하는 경우 참조를 할당하기 때문에 기존 리스트에도 변화가 생긴다.

 

member1 기존 리스트에 까지 영향을 끼치기 때문에 주의할 필요가 있다.

List의 범위 지정 없이 전체 리스트 복사본을 생성하는 간단한 방법 두 가지에 대해 알아보자.

 

 

1. Enumerable.ToList() Method 사용 (System.Linq)

위 코드에서 간단하게 .ToList() 만 추가해 주면 된다.

네임스페이스 없으면 using System.Linq; 구문도 추가해 준다.

member1 리스트는 그대로 있고, member2 리스트에만 멤버가 추가된 것을 확인할 수 있다.

 

 

2. List 생성자 이용

이는 객체 생성 시 기존 List의 복사본으로 새 인스턴스를 초기화할 수 있다.

마찬가지로 기존 리스트에는 영향을 미치지 않는다.

 

 

728x90
반응형