IReadOnlyCollection<T>やなどの .NET 4.5 の新しい読み取り専用インターフェイスIReadOnlyDictionary<TKey,TValue>は非常に便利です。特にCollection<T>、List<T>やなどの一般的な BCL 型に実装されているためDictionary<TKey,TValue>です。
ただし、実装するようにアップグレードされていませんHashSet<T>。また、これらのクラスは変更や破壊的変更なしでインターフェイスと一致するため、この決定の背後にあるロジックを確認できません。BCL チームが見落としていたのでしょうか、それとも私が見逃しているものがありますか?SortedSet<T>IReadOnlyCollection<T>
(セットを a 内にラップする組み込みの方法がないため、これは特に厄介ですIReadOnlyCollection<T>。実際、ReadOnlyCollection<T>ラップIList<T>ではなく、ラップしICollection<T>ます。独自のラッパーを作成するのは簡単なことです。)