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>?)