> 백엔드 개발 > C++ > C#`수율 '키워드는 어떻게 컬렉션을 통해 효율적인 반복을 가능하게합니까?

C#`수율 '키워드는 어떻게 컬렉션을 통해 효율적인 반복을 가능하게합니까?

Susan Sarandon
풀어 주다: 2025-01-27 17:46:13
원래의
616명이 탐색했습니다.

How Does the C# `yield` Keyword Enable Efficient Iteration Over Collections?
C#

키워드 : 컬렉션 반복 최적화

C# 2.0에 도입 된 C# yield 키워드는 컬렉션을 통해 효율적인 반복자를 만들기위한 강력한 메커니즘을 제공합니다. 이것은 컬렉션의 일부만 노출 해야하는 대형 데이터 세트 또는 시나리오를 처리 할 때 특히 관련이 있습니다.

의 기능 는 메소드가 yield 객체를 반환 할 수 있도록합니다. 이 인터페이스는

루프를 사용하여 반복 할 수있는 일련의 요소를 나타냅니다. 결정적으로

는 전체 컬렉션을 한 번에 메모리에로드 할 필요가 없습니다. 대신, 루프가 yield 기반 메소드를 반복 할 때, 메소드는 a 명령문에 직면 할 때까지만 실행됩니다. 그런 다음 수율 값을 반환하고 실행을 중단합니다. 이 메소드는 반복에서 다음 요소가 요청 될 때만 실행을 재개합니다. 이것은 본질적으로 주문형 값을 생성하는 상태 머신입니다.

예시적인 예 yield 더 큰 목록에서 메소드 필터링 요소를 고려하십시오 IEnumerable 여기서 foreach yield는 및 실제 응용 프로그램 foreach yield 키워드는 다음과 같은 광범위한 사용을 찾습니다 yield return

사용자 정의 반복자 :

컬렉션을 사전 채집하는 오버 헤드없이 사용자 정의 데이터 구조 또는 알고리즘을위한 반복자 생성. 효율적인 데이터 검색 :

데이터베이스 또는 기타 외부 소스에서 데이터를 검색하여 메모리 소비를 줄이고 성능을 향상시킵니다. 데이터베이스에서 읽는이 예를 고려하십시오

<code class="language-csharp">IEnumerable<object> FilteredList(IList<object> fullList, IList<object> partialList)
{
    foreach (object item in fullList)
    {
        if (partialList.Contains(item))
            yield return item;
    }
}</code>
로그인 후 복사
이 접근법은 데이터베이스 행을 한 번에 하나씩 가져오고 프로세스하며 전체 결과 세트를 메모리에로드하는 것보다 훨씬 더 효율적입니다. 키워드를 활용하여 개발자는 특히 크거나 동적으로 생성 된 데이터를 처리 할 때 컬렉션을 반복하기위한 우아하고 효율적인 솔루션을 만들 수 있습니다.

위 내용은 C#`수율 '키워드는 어떻게 컬렉션을 통해 효율적인 반복을 가능하게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿