728x90
C# 문자열 배열 사이즈 변경 강좌
C#에서 배열은 고정된 크기를 가지지만, 크기를 변경해야 할 때가 있습니다. 이 강좌에서는 문자열 배열의 크기를 변경하는 두 가지 주요 방법(Array.Resize
와 새로운 배열 생성)을 초보자도 이해할 수 있도록 쉽게 설명합니다.
728x90
1. 배열 크기 변경의 필요성
C# 배열은 선언 시 크기가 고정됩니다. 예를 들어, 5개의 문자열을 저장하는 배열은 더 이상의 요소를 추가할 수 없습니다. 하지만 데이터를 동적으로 추가하거나 줄여야 할 때 배열 크기를 변경할 수 있습니다. 이 강좌에서는 string
(문자열(텍스트)) 배열을 예로 사용합니다.
2. 방법 1: Array.Resize 사용
Array.Resize
는 배열의 크기를 변경하는 가장 간단한 방법입니다. 새로운 크기를 지정하면 기존 데이터를 유지한 채 배열 크기를 늘리거나 줄입니다.
예제: 배열 크기 늘리기
// string은 문자열(텍스트)을 의미
string[] names = { "Alice", "Bob", "Charlie" };
Console.WriteLine("원래 배열 길이: " + names.Length); // 출력: 3
// 배열 크기를 5로 늘림
Array.Resize(ref names, 5);
names[3] = "David";
names[4] = "Eve";
Console.WriteLine("새 배열 길이: " + names.Length); // 출력: 5
foreach (string name in names)
{
Console.WriteLine(name ?? "null"); // 출력: Alice, Bob, Charlie, David, Eve
}
주의: 크기를 늘리면 추가된 공간은 null
로 초기화됩니다.
예제: 배열 크기 줄이기
// string은 문자열(텍스트)을 의미
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };
Console.WriteLine("원래 배열 길이: " + names.Length); // 출력: 5
// 배열 크기를 3으로 줄임
Array.Resize(ref names, 3);
Console.WriteLine("새 배열 길이: " + names.Length); // 출력: 3
foreach (string name in names)
{
Console.WriteLine(name); // 출력: Alice, Bob, Charlie
}
주의: 크기를 줄이면 뒤쪽 데이터는 삭제됩니다.
3. 방법 2: 새로운 배열 생성
직접 새로운 배열을 만들어 기존 데이터를 복사하는 방법입니다. 더 많은 제어가 필요할 때 유용합니다.
// string은 문자열(텍스트)을 의미
string[] names = { "Alice", "Bob", "Charlie" };
Console.WriteLine("원래 배열 길이: " + names.Length); // 출력: 3
// 새로운 배열 생성 (크기 5)
string[] newNames = new string[5];
// 기존 데이터 복사
for (int i = 0; i < names.Length; i++)
{
newNames[i] = names[i];
}
// 추가 데이터 입력
newNames[3] = "David";
newNames[4] = "Eve";
names = newNames; // 기존 배열 참조 변경
Console.WriteLine("새 배열 길이: " + names.Length); // 출력: 5
foreach (string name in names)
{
Console.WriteLine(name ?? "null"); // 출력: Alice, Bob, Charlie, David, Eve
}
장점: 데이터 복사 방식을 자유롭게 조정 가능. 단점: 코드가 더 복잡함.
4. Array.Resize와 새로운 배열 생성 비교
- Array.Resize: 간단하고 빠름. 자동으로 데이터 복사 및 초기화. 하지만 세부 제어 불가.
- 새로운 배열 생성: 복사 로직을 직접 제어 가능. 특정 데이터만 복사하거나 변환 가능. 하지만 코드가 길어짐.
보통 간단한 크기 변경에는 Array.Resize
를, 복잡한 데이터 처리가 필요할 때 새로운 배열 생성을 사용합니다.
5. 주의사항
- 배열은 고정 크기이므로 동적 크기 변경이 빈번하다면
List<string>
같은 컬렉션을 고려하세요. Array.Resize
는 내부적으로 새 배열을 생성하므로 성능에 주의해야 합니다.- 크기를 줄일 때 데이터 손실에 주의하세요.
6. 마무리
이 강좌에서는 C# 문자열 배열의 크기를 변경하는 두 가지 방법(Array.Resize
와 새로운 배열 생성)을 배웠습니다. Array.Resize
는 간편하고, 새로운 배열 생성은 유연성을 제공합니다. 상황에 맞는 방법을 선택해 데이터를 효율적으로 관리해보세요!
728x90
'C# > 배열' 카테고리의 다른 글
C# 문자열 배열 기초 강좌 (63) | 2025.04.23 |
---|---|
C# 배열 기초 강좌 (60) | 2025.04.22 |