Новые интерфейсы только для чтения в .NET 4.5, такие как IReadOnlyCollection<T>
и IReadOnlyDictionary<TKey,TValue>
, особенно потому, что они были реализованы в общих типах BCL, таких как Collection<T>
, List<T>
и Dictionary<TKey,TValue>
.
Однако HashSet<T>
и SortedSet<T>
не были обновлены для реализации IReadOnlyCollection<T>
, и я не вижу логики этого решения, так как эти классы соответствуют интерфейсу без каких-либо изменений или изменений. Было ли это просто упущено командой BCL, или там что-то мне не хватает?
(Это особенно раздражает, так как нет встроенных способов обернуть набор внутри IReadOnlyCollection<T>
. Действительно, ReadOnlyCollection<T>
wraps IList<T>
, а не ICollection<T>
. Я знаю, что писать свою собственную оболочку тривиально. )