IDictioary<TKey, TValue>.ValuesプロパティがICollection<TValue>ではなくタイプである理由に頭を悩ませようとしていIEnumerable<TValue>ます。プロパティの .NET 実装はValues、インターフェイス プロパティを明示的に実装し、値を追加または削除しようとすると例外をスローするValues型としてプロパティを公開します。Dictionary<TKey, TValue>.ValueCollection
これは完全なハックのようです。ディクショナリの性質上、ディクショナリ内の値のコレクションを取得し、そこから値を追加/削除できる実装を作成することは理にかなっていますか?