読み取り専用プロパティで辞書への参照を返しています。消費者がデータを変更できないようにするにはどうすればよいですか? これが であれば、IList
単に を返すことができますAsReadOnly
。辞書で同様のことができるでしょうか?
Private _mydictionary As Dictionary(Of String, String)
Public ReadOnly Property MyDictionary() As Dictionary(Of String, String)
Get
Return _mydictionary
End Get
End Property
ベストアンサー1
.NET 4.5
.NET Framework 4.5 BCLでは、ReadOnlyDictionary<TKey, TValue>
(ソース)。
.NET Framework 4.5 BCL にはAsReadOnly
for ディクショナリが含まれていないため、独自のディクショナリを作成する必要があります (必要な場合)。次のようなものになりますが、そのシンプルさが、.NET 4.5 で優先事項とされなかった理由を浮き彫りにしているのかもしれません。
public static ReadOnlyDictionary<TKey, TValue> AsReadOnly<TKey, TValue>(
this IDictionary<TKey, TValue> dictionary)
{
return new ReadOnlyDictionary<TKey, TValue>(dictionary);
}
.NET 4.0 以下
.NET 4.5より前では、.NETフレームワーククラスには、Dictionary<TKey, TValue>
以下のような読み取り専用コレクションラップリストただし、作成するのは難しくありません。
ここに例があります- 他にもたくさんありますGoogle で ReadOnlyDictionary を検索。