C#에서 인덱스를 사용해 리스트(List)의 특정 항목을 제거하려면 RemoveAt() 메서드를 사용하면 됩니다. 이 메서드는 지정한 위치(인덱스)에 있는 요소를 삭제하고, 뒤에 있는 요소들을 자동으로 앞으로 당겨줍니다.
RemoveAt() 메서드란?
RemoveAt(int index)는 List<T> 클래스에서 제공하는 메서드로, 매개변수로 전달된 인덱스 위치의 요소를 제거합니다. 인덱스는 0부터 시작하며, 유효 범위를 벗어난 값을 전달하면 ArgumentOutOfRangeException이 발생하므로 주의해야 합니다.
리스트 생성하기
먼저 문자열 리스트를 하나 만들어 보겠습니다.
List<string> list1 = new List<string>() {
"Hanks",
"Lawrence",
"Beckham",
"Cooper",
};이제 두 번째 위치, 즉 인덱스 1에 해당하는 요소("Lawrence")를 제거해 보겠습니다.
list1.RemoveAt(1);
전체 예제 코드
아래는 위 과정을 포함한 완전한 예제입니다.
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
List<string> list1 = new List<string>() {
"Hanks",
"Lawrence",
"Beckham",
"Cooper",
};
Console.Write("Initial list...");
foreach (string list in list1) {
Console.WriteLine(list);
}
Console.Write("Removing element from the list...");
list1.RemoveAt(1);
foreach (string list in list1) {
Console.WriteLine(list);
}
}
}실행 결과
Initial list... Hanks Lawrence Beckham Cooper Removing element from the list... Hanks Beckham Cooper
정리 및 주의사항
RemoveAt()은 값이 아닌 인덱스 기준으로 요소를 제거합니다.- 요소가 제거되면 나머지 요소들의 인덱스가 자동으로 재조정됩니다.
- 존재하지 않는 인덱스를 지정하면
ArgumentOutOfRangeException예외가 발생합니다. - 특정 값을 기준으로 제거하고 싶다면
Remove()메서드를 사용하는 것이 적합합니다.
이처럼 RemoveAt() 메서드를 활용하면 C# 리스트에서 원하는 위치의 요소를 간단하고 효율적으로 제거할 수 있습니다.