C#에서 여러 문자열을 하나로 합칠 때 StringBuilder 클래스를 사용하면 새로운 문자열 객체를 계속 생성하지 않고도 효율적으로 문자열을 조작할 수 있습니다. 이 글에서는 foreach 루프를 활용해 문자열 배열의 각 요소를 StringBuilder에 반복해서 추가하는 방법을 알아보겠습니다.
1. 문자열 배열과 StringBuilder 설정
먼저 출력할 문자열 배열과 StringBuilder 객체를 준비합니다.
// 문자열 배열
string[] myStr = { "One", "Two", "Three", "Four" };
StringBuilder str = new StringBuilder("We will print now...").AppendLine();AppendLine() 메서드는 문자열 끝에 줄바꿈 문자를 추가해 주므로, 이후 각 요소가 한 줄씩 깔끔하게 출력됩니다.
2. foreach 루프로 요소 반복 추가
이제 foreach 루프를 사용해 배열의 각 항목을 StringBuilder에 순서대로 추가합니다.
foreach (string item in myStr) {
str.Append(item).AppendLine();
}루프가 한 번 실행될 때마다 Append()로 현재 항목을 더하고, AppendLine()으로 줄바꿈을 붙여 다음 항목이 새로운 줄에 출력되도록 합니다.
3. 전체 예제 코드
아래는 위 과정을 모두 포함한 완전한 코드입니다.
using System;
using System.Text;
public class Demo {
public static void Main() {
// 문자열 배열
string[] myStr = { "One", "Two", "Three", "Four" };
StringBuilder str = new StringBuilder("We will print now...").AppendLine();
// foreach 루프로 요소 추가
foreach (string item in myStr) {
str.Append(item).AppendLine();
}
Console.WriteLine(str.ToString());
Console.ReadLine();
}
}4. 실행 결과
프로그램을 실행하면 다음과 같은 결과가 콘솔에 출력됩니다.
We will print now... One Two Three Four
왜 StringBuilder를 사용할까?
일반적인 string 타입은 불변(immutable)이기 때문에 문자열을 연결할 때마다 새로운 객체가 생성되어 성능 저하가 발생할 수 있습니다. 반면 StringBuilder는 내부 버퍼를 재사용하므로, 특히 루프 안에서 문자열을 반복적으로 이어붙일 때 훨씬 뛰어난 성능을 제공합니다. 대량의 데이터를 처리하는 경우 StringBuilder 사용을 권장합니다.