Por que o HashSet <T> não implementa IReadOnlyCollection <T>?
Acabei de descobrir que o .NET Fx agora tem 3 interfaces úteis:
IReadOnlyCollection<T>
IReadOnlyList<T>
IReadOnlyDictionary<K,V>
E estou um pouco confuso porqueHashSet<T>
não implementaIReadOnlyCollection<T>
? Há alguma razão ou a Microsoft esqueceu de definir os sets novamente?
UPD
Depois de duas horas pesquisando, descobri que há muitas coleções na BCL que tem.Count
propriedade, mas não implementamIReadOnlyCollection<T>
interface.
UPD2
Eu encontrei este posthttp://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/b4fb991a-3f5c-4923-93d4-7cd5c004f859 e a resposta deImmo Landwerth onde ele disse depois
Outras coleções além de List <> e Dictionary <> serão atualizadas para suportar essas interfaces?
Absolutamente. Na verdade, todos os nossos tipos de coleção incorporados já implementam IReadOnlyList <> e IReadOnlyDictionary <>. Isso significa que você pode passar diretamente uma instância de List, T [] ou Dictionary <> para uma API que usa uma versão IReadOnly.