.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>
。我知道编写自己的包装器是微不足道的。)