C# 프로그래밍을 하다 보면 문자열 리스트에 빈 문자열이나 공백만 있는 요소가 포함되어 있어 이를 정리해야 하는 경우가 자주 발생합니다. 이번 글에서는 RemoveAt() 메서드를 사용하여 리스트에서 특정 인덱스의 빈 문자열 요소를 제거하는 방법을 알아보겠습니다.
1. 빈 문자열이 포함된 리스트 생성하기
먼저, 빈 문자열(공백)을 요소로 가지는 리스트를 생성합니다. 아래 예제에서는 세 개의 공백 문자열을 포함하는 리스트를 만들었습니다.
List<string> myList = new List<string>() {
" ",
" ",
" "
};2. RemoveAt() 메서드로 요소 제거하기
RemoveAt() 메서드는 지정한 인덱스 위치의 요소를 리스트에서 삭제합니다. 인덱스는 0부터 시작하므로, 첫 번째 요소를 제거하려면 인덱스 0을 전달하면 됩니다.
myList.RemoveAt(0);
위 코드를 실행하면 리스트의 첫 번째 빈 문자열 요소가 삭제되고, 나머지 두 개의 요소가 남게 됩니다.
3. 전체 예제 코드
지금까지 설명한 내용을 하나의 완전한 프로그램으로 작성해 보겠습니다. 리스트 초기화, 요소 출력, 제거, 결과 확인까지의 전체 과정을 담고 있습니다.
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
List<string> myList = new List<string>() {
" ",
" ",
" "
};
Console.Write("빈 문자열이 포함된 초기 리스트...\n");
foreach (string list in myList) {
Console.WriteLine(list);
}
Console.Write("리스트에서 빈 요소를 제거합니다...\n");
myList.RemoveAt(0);
foreach (string list in myList) {
Console.WriteLine(list);
}
Console.WriteLine("위에 빈 요소가 하나 삭제된 리스트가 표시됩니다...");
}
}4. 실행 결과
프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
빈 문자열이 포함된 초기 리스트... 리스트에서 빈 요소를 제거합니다... 위에 빈 요소가 하나 삭제된 리스트가 표시됩니다...
추가 팁: 모든 빈 문자열 한 번에 제거하기
리스트에 빈 문자열이 여러 개 있고 이를 모두 제거하고 싶다면, LINQ의 Where() 메서드와 IsNullOrWhiteSpace()를 조합하는 것이 효율적입니다.
myList = myList.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();
이 방법을 사용하면 반복문 없이도 리스트 내의 모든 빈 문자열과 공백 요소를 한 번에 필터링할 수 있습니다.
마무리
C#에서 리스트의 빈 문자열을 제거하는 가장 기본적인 방법은 RemoveAt()으로 특정 인덱스의 요소를 삭제하는 것입니다. 단일 요소 제거에는 RemoveAt(), 다수의 빈 요소 일괄 제거에는 LINQ의 Where() 메서드를 활용하면 상황에 맞게 깔끔하게 처리할 수 있습니다.