인덱스 지원을 통한 컬렉션의 공분산
컬렉션의 공분산을 통해 파생 항목을 기본 유형에 대해 선언된 컬렉션에 저장할 수 있습니다. 그러나 기본 공변 컬렉션인 IEnumerable에는 인덱스 지원이 부족합니다.
질문자가 지적했듯이 List
가능한 솔루션
.NET 4.5부터 IReadOnlyList
공변 래퍼 생성
인덱스 지원이 포함된 쓰기 가능한 컬렉션이 필요한 경우 IList<를 래핑하는 확장 메서드를 생성할 수 있습니다. ;T> 원하는 공분산을 제공하는 메서드의 하위 집합만 노출합니다.
public static class Covariance { public static IIndexedEnumerable<T> AsCovariant<T>(this IList<T> tail) { return new CovariantList<T>(tail); } private class CovariantList<T> : IIndexedEnumerable<T> { // Implementation... } }
이 래퍼 클래스인 CovariantList
AsCovariant
위 내용은 컬렉션의 인덱스 지원을 통해 어떻게 공분산을 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!