.NET 4.5 中新的只读接口(例如IReadOnlyCollection<T>和IReadOnlyDictionary<TKey,TValue>)非常有用,尤其是因为它们已在常见的 BCL 类型(例如Collection<T>、List<T>和Dictionary<TKey,TValue>.
但是,HashSet<T>并SortedSet<T>没有升级为 implement IReadOnlyCollection<T>,我看不出这个决定背后的逻辑,因为这些类在没有任何修改或破坏性更改的情况下与接口匹配。它只是被 BCL 团队忽略了,还是我在这里遗漏了什么?
(这特别烦人,因为没有内置方法可以将集合包装在 aIReadOnlyCollection<T>中。确实,ReadOnlyCollection<T>包装IList<T>而不是ICollection<T>。我知道编写自己的包装器是微不足道的。)