공분산 및 IList: 인덱스 조회를 위한 컬렉션 확장
C#에서 공변 컬렉션을 사용하면 하위 컬렉션을 사용하여 상위 컬렉션에서 항목을 검색할 수 있습니다. 그러나 표준 IEnumerable
Since List
이 문제를 해결하기 위해 .NET 4.5 이상에서는 IReadOnlyList
두 목록
그러나 get 및 set 인덱서가 모두 포함된 공변 컬렉션이 필요한 경우 옵션이 제한됩니다. 잠재적인 해결책은 기존 IList
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> { private readonly IList<T> tail; public T this[int index] => tail[index]; public IEnumerator<T> GetEnumerator() => tail.GetEnumerator(); public int Count => tail.Count; } } public interface IIndexedEnumerable<out T> : IEnumerable<T> { T this[int index] { get; } int Count { get; } }
이 접근 방식은 IEnumerable
위 내용은 C#에서 인덱스 조회를 사용하여 공변 컬렉션을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!