Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 인덱스로 리스트 항목 제거하기 – RemoveAt() 메서드 완벽 가이드

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# 리스트에서 원하는 위치의 요소를 간단하고 효율적으로 제거할 수 있습니다.