C#의 yield와 Enumerator 알아보기


안녕하세요 오늘은 C#에서의 yield 키워드와 Enumerator에 대해 설명해 보도록 하겠습니다. 사용 예제와 함께 보시면 이해하시는데 수월할 것 같습니다.

C#의 yield와 Enumerator의 역할

C#은 .NET 프레임워크의 주요 프로그래밍 언어 중 하나로, 다양한 기능을 제공합니다. 특히, yield 키워드와 Enumerator는 컬렉션의 요소를 순회하고 반환하는 과정을 간소화하고 효율적으로 만드는 데 큰 도움을 줍니다.

yield 키워드의 개념

yield 키워드는 C#에서 반복자(Iterator)를 구현할 때 사용됩니다. 이를 사용하면 컬렉션의 각 요소를 하나씩 반환할 수 있으며, 복잡한 로직 없이도 사용자 정의 반복 작업을 쉽게 구현할 수 있습니다.

yield의 사용 방식

  • yield return: 컬렉션의 다음 요소를 반환합니다.
  • yield break: 반복을 중단하고 반복자를 종료합니다.

Enumerator의 역할

Enumerator는 컬렉션을 순회하는 객체입니다. IEnumerable 인터페이스를 구현하는 모든 컬렉션은 Enumerator를 통해 순회될 수 있습니다. Enumerator는 컬렉션의 현재 요소에 액세스하고, 다음 요소로 이동하는 메커드를 제공합니다.

Enumerator 사용 예제

List 컬렉션을 순회하며 각 요소를 출력합니다.

yield와 Enumerator를 활용한 사용자 정의 반복자

yield 키워드를 사용하여 사용자 정의 반복자를 만들면, 복잡한 로직을 단순화할 수 있습니다. 이를 통해 개발자는 컬렉션의 내부 구조에 대해 걱정할 필요 없이 요소를 순차적으로 반환할 수 있습니다.

사용자 정의 반복자 예제

yield와 Enumerator

이 예제는 짝수만 반환하는 사용자 정의 반복자를 구현합니다.

yield와 Enumerator의 장점

yieldEnumerator의 사용은 코드의 가독성을 높이고, 메모리 사용을 최적화합니다. 또한, 복잡한 컬렉션을 다룰 때 개발자가 직접 반복 로직을 작성하는 수고를 덜어줍니다.

  • 가독성 향상: 간결하고 이해하기 쉬운 반복 로직을 작성할 수 있습니다.
  • 메모리 최적화: 요소가 필요할 때만 생성되므로 메모리 사용이 최적화됩니다.
  • 유연성 제공: 다양한 컬렉션 타입에 적용할 수 있는 일관된 접근 방식을 제공합니다.

C# 프로그래밍에서 yieldEnumerator는 컬렉션과 반복자 패턴을 더 효율적으로 다루는 데 핵심적인 역할을 합니다. 효과적으로 활용하셔서, 보다 효율적이고 간결한 코드를 작성할 수 있기를 바라겠습니다. 감사합니다.

다른글보기