>백엔드 개발 >C++ >인덱싱을 사용하여 공변 컬렉션에서 항목을 어떻게 가져올 수 있나요?

인덱싱을 사용하여 공변 컬렉션에서 항목을 어떻게 가져올 수 있나요?

DDD
DDD원래의
2025-01-02 15:32:40934검색

How Can I Get Items from a Covariant Collection with Indexing?

공변 및 인덱스 컬렉션에서 항목 검색

공변 컬렉션을 사용하면 업캐스트를 통해 항목을 검색할 수 있지만 인덱스 지원이 부족한 경우가 많습니다. IEnumerable은 인덱싱이 없는 공변 컬렉션의 예입니다. 그러나 인덱싱과 업캐스팅을 모두 제공하는 공변 컬렉션이 필요할 수 있습니다.

문제는 ICollection을 구현하고 Add 메서드가 있는 List 클래스에서 발생합니다. List 업캐스트하기 IList 개가 아닌 동물을 추가하여 원래 컬렉션의 유형 제약을 위반할 수 있습니다.

인덱스 조회가 포함된 공변 컬렉션이 필요한 경우 대안을 고려할 수 있습니다.

  • .NET 4.5 이상: IReadOnlyList 및 IReadOnlyCollection 공변 인덱싱 기능을 제공합니다. 목록 및 ReadOnlyCollection 두 인터페이스를 모두 구현합니다.
  • 사용자 정의 공분산 래퍼: AsCovariant와 같은 확장 메서드를 생성하여 IList IEnumerable 인덱서를 가져와서 인덱싱 지원이 포함된 공변 래퍼를 만듭니다.

위 내용은 인덱싱을 사용하여 공변 컬렉션에서 항목을 어떻게 가져올 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.