C++ 쟁이가 C#을 배워보자 - foreach

기본적으로 while, do-while, for 반복자는 C++과 동일하게 사용이 가능하므로 foreach만 정리한다.사실 foreach의 경우에도 C++ 11 이후부터 지원하는 범위기반 for문과 유사하다.
int numbers[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//C++에서의 범위기반 for문
for (int n : numbers) {
    printf("%d\n", n);
}
C#에서는 이러한 기능을 foreach로 제공하고 있다. 위 C++ 코드를 C#으로 옮기면 아래와 같다.
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach(int n in numbers)
{
    System.Console.WriteLine($"{n}");
}
C++에서는 기본 타입이 아닌 객체 타입으로 범위기반 for를 사용하고자 하는 경우 .begin() 및 .end() 멤버 함수를 가진 객체만이 사용 가능하다.C#은 유사하게 IEnumerable 인터페이스를 구현한 타입들은 foreach를 사용할 수 있다.

댓글

가장 많이 본 글