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

C# List에서 지정된 인덱스의 요소를 가져오거나 설정하는 방법

C# List에서 특정 인덱스의 요소 다루기

C#에서 List<T> 컬렉션은 인덱서(Indexer)를 통해 지정된 위치의 요소에 바로 접근할 수 있습니다. 인덱서는 내부적으로 Item[Int32] 속성으로 구현되어 있으며, 대괄호([]) 연산자를 사용해 요소를 손쉽게 읽거나 수정할 수 있습니다.

  • 요소 가져오기: list[index]
  • 요소 설정(수정): list[index] = 값

인덱스는 항상 0부터 시작한다는 점에 유의해야 하며, 리스트의 유효 범위를 벗어난 인덱스에 접근하면 ArgumentOutOfRangeException이 발생합니다.

예제 1: 인덱스로 요소 가져오기

다음은 문자열 리스트를 생성한 뒤, 인덱서를 사용하여 각 인덱스에 해당하는 요소를 출력하는 예제입니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      List<String> list = new List<String>();
      list.Add("100");
      list.Add("200");
      list.Add("300");
      list.Add("400");
      list.Add("500");
      list.Add("600");
      list.Add("700");
      list.Add("800");
      list.Add("900");
      list.Add("1000");

      Console.WriteLine("인덱스 0의 요소 = " + list[0]);
      Console.WriteLine("인덱스 1의 요소 = " + list[1]);
      Console.WriteLine("인덱스 2의 요소 = " + list[2]);
      Console.WriteLine("인덱스 3의 요소 = " + list[3]);
      Console.WriteLine("인덱스 4의 요소 = " + list[4]);
      Console.WriteLine("인덱스 5의 요소 = " + list[5]);
      Console.WriteLine("인덱스 6의 요소 = " + list[6]);
      Console.WriteLine("인덱스 7의 요소 = " + list[7]);
   }
}

실행 결과

인덱스 0의 요소 = 100
인덱스 1의 요소 = 200
인덱스 2의 요소 = 300
인덱스 3의 요소 = 400
인덱스 4의 요소 = 500
인덱스 5의 요소 = 600
인덱스 6의 요소 = 700
인덱스 7의 요소 = 800

예제 2: 인덱스로 요소 설정(수정)하기

인덱서는 값을 읽는 것뿐만 아니라 기존 요소를 새 값으로 교체할 때도 사용됩니다. 아래 예제에서는 인덱스 3의 요소를 "450"으로 변경한 후, 변경된 값을 다시 출력합니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      List<String> list = new List<String>();
      list.Add("100");
      list.Add("200");
      list.Add("300");
      list.Add("400");
      list.Add("500");
      list.Add("600");
      list.Add("700");
      list.Add("800");
      list.Add("900");
      list.Add("1000");

      Console.WriteLine("인덱스 0의 요소 = " + list[0]);
      Console.WriteLine("인덱스 1의 요소 = " + list[1]);
      Console.WriteLine("인덱스 2의 요소 = " + list[2]);
      Console.WriteLine("인덱스 3의 요소 = " + list[3]);
      Console.WriteLine("인덱스 4의 요소 = " + list[4]);
      Console.WriteLine("인덱스 5의 요소 = " + list[5]);
      Console.WriteLine("인덱스 6의 요소 = " + list[6]);
      Console.WriteLine("인덱스 7의 요소 = " + list[7]);

      // 인덱서를 사용해 인덱스 3의 요소 수정
      list[3] = "450";
      Console.WriteLine("인덱스 3의 요소 [수정 후] = " + list[3]);
   }
}

실행 결과

인덱스 0의 요소 = 100
인덱스 1의 요소 = 200
인덱스 2의 요소 = 300
인덱스 3의 요소 = 400
인덱스 4의 요소 = 500
인덱스 5의 요소 = 600
인덱스 6의 요소 = 700
인덱스 7의 요소 = 800
인덱스 3의 요소 [수정 후] = 450

정리

C#의 List<T>에서는 list[index] 형태의 인덱서 문법 하나로 요소 조회와 수정을 모두 처리할 수 있습니다. 다만 인덱스가 0부터 시작하며 리스트 크기를 벗어나면 예외가 발생하므로, 필요하다면 Count 속성으로 범위를 확인한 후 접근하는 것이 안전합니다.