> 백엔드 개발 > C++ > 반복 없이 IEnumerable의 항목 수를 얻는 방법은 무엇입니까?

반복 없이 IEnumerable의 항목 수를 얻는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-28 08:40:12
원래의
493명이 탐색했습니다.

How to Get the Count of Items in an IEnumerable without Iteration?

IEnumerable에서 항목 수 검색 반복 없이

IEnumerable 다음과 같은 컬렉션:

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}
로그인 후 복사

이 컬렉션을 반복하고 진행률을 "#n/#m 처리 중"으로 표시하려고 합니다. 기본 반복 전에 반복하지 않고 m 값을 확인할 수 있는 방법이 있나요?

IEnumerable 이해

기본적으로 IEnumerable은 m의 직접 검색을 허용하지 않습니다. 아이템 수. 지연 평가 특성은 요소가 필요할 때만 검색된다는 것을 의미합니다. 이 디자인 선택은 불필요한 메모리 할당 및 처리를 방지하여 리소스 사용을 최적화하기 위해 만들어졌습니다.

대체 솔루션: ICollection 사용

항목 수에 대한 즉각적인 지식이 필요한 경우, IEnumerable의 대안은 ICollection을 사용하는 것입니다. IEnumerable과 달리 ICollection은 컬렉션의 요소 수를 반환하는 Count 속성을 제공합니다.

public class TableCollection : ICollection<string>
{
    // Implementation details omitted for brevity

    public int Count => 2;
}
로그인 후 복사

Tables 컬렉션을 ICollection 또는 List과 같은 일반 컬렉션을 사용하면 Count 속성에 액세스하여 반복할 필요 없이 항목 수를 검색할 수 있습니다.

결론

IEnumerable이 제공하는 동안 지연 평가 이점이 있지만 항목 수 검색을 직접 지원하지 않습니다. 개수에 즉시 액세스하려면 ICollection 또는 이 기능을 제공하는 보다 적절한 데이터 구조를 사용하는 것이 좋습니다.

위 내용은 반복 없이 IEnumerable의 항목 수를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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