IList<T>
除了属性不支持的操作(SortedList<TKey, TValue>.Keys
例如Add
、Remove
和)之外,该接口还包括按索引访问Insert
。
A ReadOnlyCollection<T>
,例如 的返回值List<T>.AsReadOnly
,实现IList<T>
并因此提供按索引访问,但通过显式实现它们来隐藏非法操作Add
等。此外,它只是底层列表的包装器;所以它不会创建副本,因此(我会假设)不会对性能造成任何实际影响。
知道为什么SortedList<TKey, TValue.Keys
不是 aReadOnlyCollection<TKey>
吗?(就此而言,为什么该Values
属性不是ReadOnlyColllection<TValue>
?)