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

C#에서 foreach 문으로 배열 요소에 접근하는 방법

C#의 foreach 문은 배열의 모든 요소를 인덱스 없이 순차적으로 읽을 수 있는 가장 간결한 반복문입니다. 별도의 카운터 변수나 종료 조건 없이도 컬렉션 전체를 안전하게 순회할 수 있어 코드 가독성이 높아지고 실수도 줄어듭니다.

아래 예제에서는 먼저 for 문으로 정수 배열을 초기화한 뒤, foreach 문을 사용해 각 요소의 값을 출력합니다.

예제

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int[] n = new int[10]; /* n은 10개의 정수를 담는 배열 */

         /* 배열 n의 요소 초기화 */
         for (int i = 0; i < 10; i++) {
            n[i] = i + 100;
         }

         /* foreach 문으로 각 배열 요소의 값 출력 */
         foreach (int j in n) {
            int i = j - 100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
         }

         Console.ReadKey();
      }
   }
}

실행 결과

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

foreach 문은 자체적으로 인덱스를 제공하지 않습니다. 그래서 위 예제에서는 요소 값에서 100을 빼는 방식으로 인덱스를 역산해 함께 출력했습니다. 즉, foreach는 요소의 값 자체에 집중하는 반복문이라는 점을 기억하면 좋습니다.

인덱스로 특정 요소에 접근하기

두 번째 요소처럼 특정 위치의 값이 필요하다면 foreach 대신 인덱서([])를 사용하는 것이 좋습니다.

int a = n[1];

배열의 인덱스는 0부터 시작하므로 위 코드는 두 번째 요소인 101을 변수 a에 저장합니다.

참고: foreach와 for 선택 기준

  • foreach: 모든 요소를 순서대로 읽기만 할 때 적합합니다. 단, 반복 중에는 배열 요소를 수정할 수 없습니다.
  • for: 인덱스가 필요하거나 특정 구간만 순회하거나 요소 값을 변경해야 할 때 적합합니다.