读到这里,我不明白为什么不是IList<T>
。但是为什么是 IList 呢?添加它是没有意义的,所以它应该只是一个 IEnumerable,或者如果你真的想要一个索引器(没有理由),使用 ReadOnlyCollection。
问问题
478 次
3 回答
2
看看NotifyCollectionChangedEventArgs
。
它有 NewStartingIndex
和OldStartingIndex
属性。
所以设计基于可索引的集合,我认为这对于例如列表框来说很方便。
于 2011-12-04T10:09:07.777 回答
1
对于列表虚拟化场景,索引是可取的。
IList
是提供对元素的索引访问的最简单的集合接口。ReadOnlyCollection
是一个具体的类,因此对实现者的限制更大。
于 2011-12-04T10:24:30.713 回答
0
我认为,如果INotifyCollectionChanged
您经常需要通过名称查找组件(因为属性在那里存储为字符串),因此必须有一个带字符串的索引器(并且底层结构可能应该像 HashTable 之类的东西)。
在MSDN 网页上,您可以找到以下建议:
如果您有高级场景并希望实现自己的集合,请考虑使用 IList,它提供了一个非泛型对象集合,可以通过索引单独访问并提供最佳性能。
于 2011-12-04T10:12:15.740 回答