본문 바로가기
C#/배열

C# 문자열 배열 사이즈 변경 강좌

by 개발하는 늑대 2025. 4. 23.
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는 간편하고, 새로운 배열 생성은 유연성을 제공합니다. 상황에 맞는 방법을 선택해 데이터를 효율적으로 관리해보세요!

© 2025 C# 초보자 강좌 | All Rights Reserved

728x90

'C# > 배열' 카테고리의 다른 글

C# 문자열 배열 기초 강좌  (63) 2025.04.23
C# 배열 기초 강좌  (60) 2025.04.22