Я только что нашел, что .NET Fx теперь имеет 3 полезных интерфейса:
И я немного смущен, почему HashSet<T>
не реализует IReadOnlyCollection<T>
? Есть ли какие-либо причины, или Microsoft просто забыла о наборах снова?
UPD
После двухчасовой googling я обнаружил, что в BCL есть много коллекций, у которых есть свойство .Count
, но не реализует интерфейс IReadOnlyCollection<T>
.
UPD2
Я нашел этот пост http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/b4fb991a-3f5c-4923-93d4-7cd5c004f859 и ответ Immo Landwerth, где он сказал следующее
Будут ли обновляться другие коллекции, кроме List < > и Dictionary < > , чтобы поддерживают эти интерфейсы?
Совершенно верно. На самом деле, все наши встроенные типы коллекций уже реализовать IReadOnlyList < > и IReadOnlyDictionary < > . Это значит, что ты может напрямую передать экземпляр List, T [] или Dictionary < > в API, который использует IReadOnly-версию.