2011-12-04 4 views
0

here을 읽는다면 왜 나는 IList<T>이 아닌지 왜 undestand인지 알 수 있습니다. 하지만 왜 IList를 사용합니까? 그것은 IEnumerable 일 필요가 없으므로 추가 할 필요가 없으며 인덱서 (이유가없는 이유)가 실제로 필요한 경우 ReadOnlyCollection을 사용하십시오.INotifyCollectionChanged가 IList를 사용하는 이유

답변

2

NotifyCollectionChangedEventArgs을 살펴보십시오.

이것은 NewStartingIndexOldStartingIndex입니다.

그래서 디자인은 인덱싱 가능한 컬렉션을 기반으로합니다. 예를 들어 목록 상자에 편리하다고 가정합니다.

0

나는 INotifyCollectionChanged의 경우 속성이 문자열로 저장되기 때문에 이름으로 구성 요소를 조회해야하는 경우가 종종 있으므로 문자열을 가져 오는 인덱서가 있어야합니다 (그리고 기본 구조는 아마도 HashTable과 같아야합니다). MSDN webpage

다음과 같은 권고 찾을 수 있습니다 : 당신이 고급 시나리오를 가지고 자신의 수집을 구현하려면

것은 개체의 제네릭이 아닌 모음을 제공은 IList를 사용하여 고려를하는 수 인덱스별로 개별적으로 액세스 할 수 있으며 이 최상의 성능을 제공합니다.

1

인덱싱은 목록 가상화 시나리오에서 바람직합니다.

IList은 요소에 대한 인덱싱 된 액세스를 제공하는 가장 간단한 컬렉션 인터페이스입니다. ReadOnlyCollection은 구체적인 클래스이므로 구현자를 훨씬 더 제한합니다.

관련 문제