C#의 StringCollection에서 특정 문자열이 처음 등장하는 항목을 제거하려면 Remove() 메서드를 사용하면 됩니다. 이 메서드는 지정된 문자열과 일치하는 첫 번째 요소만 삭제하며, 동일한 값이 여러 개 있더라도 한 번에 하나씩만 제거됩니다.
StringCollection.Remove() 메서드의 주요 특징
- 전달된 문자열과 일치하는 첫 번째 요소를 컬렉션에서 제거합니다.
- 컬렉션에 해당 문자열이 존재하지 않으면 아무 변화 없이 유지되며, 예외도 발생하지 않습니다.
- Count 속성을 통해 현재 저장된 요소의 개수를 확인할 수 있습니다.
예제 1: 중복된 값이 있는 경우
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection stringCol = new StringCollection();
String[] arr = new String[] { "100", "200", "100", "400", "500" };
Console.WriteLine("배열 요소...");
foreach (string res in arr) {
Console.WriteLine(res);
}
stringCol.AddRange(arr);
Console.WriteLine("총 요소 개수 = " + stringCol.Count);
stringCol.Remove("100");
Console.WriteLine("제거 후 총 요소 개수 = " + stringCol.Count);
}
}
출력 결과
배열 요소...
100
200
100
400
500
총 요소 개수 = 5
제거 후 총 요소 개수 = 4
위 예제에서 배열에는 "100"이 두 번 포함되어 있습니다. 하지만 Remove("100")을 호출하면 가장 앞쪽에 있는 첫 번째 "100"만 제거되고, 요소 개수는 5개에서 4개로 줄어듭니다. 두 번째 "100"은 그대로 남아 있다는 점에 주목하세요.
예제 2: 여러 값을 순차적으로 제거하기
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection stringCol = new StringCollection();
String[] arr = new String[] { "10", "20", "30", "40", "50", "60", "70", "80" };
Console.WriteLine("배열 요소...");
foreach (string res in arr) {
Console.WriteLine(res);
}
stringCol.AddRange(arr);
Console.WriteLine("총 요소 개수 = " + stringCol.Count);
stringCol.Remove("50");
stringCol.Remove("60");
stringCol.Remove("70");
Console.WriteLine("제거 후 총 요소 개수 = " + stringCol.Count);
}
}
출력 결과
배열 요소...
10
20
30
40
50
60
70
80
총 요소 개수 = 8
제거 후 총 요소 개수 = 5
이번 예제에서는 먼저 AddRange() 메서드로 배열 전체를 컬렉션에 추가한 뒤, Remove() 메서드를 세 번 호출하여 "50", "60", "70"을 각각 제거했습니다. 그 결과 8개였던 요소가 5개로 감소했습니다.
정리
StringCollection의 Remove() 메서드를 활용하면 특정 문자열의 첫 번째 항목을 간단하게 제거할 수 있습니다. 중복 값이 여러 개일 경우 Remove()를 반복 호출하거나, 반복문과 Contains() 메서드를 함께 사용하면 원하는 값을 모두 제거할 수 있습니다. 또한 존재하지 않는 값을 제거하려 해도 예외가 발생하지 않으므로 안심하고 사용할 수 있습니다.