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

C# List의 RemoveAt() 메서드로 특정 위치의 요소 삭제하기

C#에서 RemoveAt() 메서드는 리스트(List)에서 지정한 인덱스 위치에 있는 요소를 삭제하는 데 사용됩니다. 인덱스는 0부터 시작하므로, 세 번째 위치의 요소를 삭제하려면 인덱스 2를 전달해야 합니다.

리스트에 요소 추가하기

먼저 삭제 작업을 테스트할 리스트에 요소들을 추가해 보겠습니다.

var subjects = new List<string>();
subjects.Add("Physics");
subjects.Add("Chemistry");
subjects.Add("Biology");
subjects.Add("Science");

위 코드는 Physics, Chemistry, Biology, Science 네 개의 과목을 리스트에 순서대로 저장합니다.

RemoveAt()으로 요소 삭제하기

요소를 삭제하려면 제거하고 싶은 위치의 인덱스를 RemoveAt() 메서드에 전달하면 됩니다. 예를 들어, 세 번째 위치(인덱스 2)에 있는 "Biology"를 삭제하려면 다음과 같이 작성합니다.

subjects.RemoveAt(2);

삭제가 실행되면 해당 요소가 제거되고, 뒤에 있던 요소들이 자동으로 앞으로 이동하여 인덱스가 다시 정렬됩니다.

전체 예제 코드

아래는 RemoveAt() 메서드의 동작을 확인할 수 있는 완전한 코드입니다.

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(string[] args) {
        var subjects = new List<string>();
        subjects.Add("Physics");
        subjects.Add("Chemistry");
        subjects.Add("Biology");
        subjects.Add("Science");

        Console.WriteLine("ELEMENTS:");
        foreach (var sub in subjects) {
            Console.WriteLine(sub);
        }

        // 세 번째 위치(인덱스 2)의 요소 삭제
        subjects.RemoveAt(2);
        Console.WriteLine("After removing an element:");

        foreach (var sub in subjects) {
            Console.WriteLine(sub);
        }
    }
}

실행 결과

ELEMENTS:
Physics
Chemistry
Biology
Science
After removing an element:
Physics
Chemistry
Science

주의 사항

존재하지 않는 인덱스를 전달하면 ArgumentOutOfRangeException 예외가 발생합니다. 따라서 RemoveAt()을 호출하기 전에 Count 속성으로 리스트 크기를 확인하거나, 유효한 범위 내의 인덱스인지 반드시 검증하는 것이 안전합니다.