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
반응형