我在我的只读属性中返回对字典的引用.如何防止消费者更改我的数据?如果这是一个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
Run Code Online (Sandbox Code Playgroud) 我知道我们应该使用字典而不是哈希表.我找不到克隆字典的方法.即使将它转换为ICollection,我也是为了获得SyncRoot,我知道这也是不赞成的.
我现在忙着改变它.我是否正确地假设无法以通用方式实现任何类型的克隆,这就是字典不支持克隆的原因?
如何将a复制Dictionary<string, string>到另一个new Dictionary<string, string>以使它们不是同一个对象?
我有一个字典,这样: Dictionary<string, SomeClass> template
基本上,我想要做的是获取包含在其中的对象的副本template.但是,我似乎无法创建一个按值检索对象的方法.我知道ref和out,但这些与我想要的完全相反.结构将是完美的,但不幸的是,SomeClass必须从另一个类和/或接口继承.
有什么办法可以做我想要的吗?这看起来应该非常简单.
我有四个字典,两个是(字典里面的字典),声明如下所示
Dictionary<string, Dictionary<string, string>> dict_set = new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, Dictionary<string, string>> dict_Reset = new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, string> set_value = new Dictionary<string, string>();
Dictionary<string, string> Reset_value = new Dictionary<string, string>();
Run Code Online (Sandbox Code Playgroud)
我想先在字典set_vlaue和Reset_value中添加元素.一旦添加了值,我就会将这些词典添加到其他两个词典中,如下所示.
dict_set.Add(condiName, set_value);
dict_Reset.Add(condiName, Reset_value);
set_value.Clear();
Reset_value.Clear();
Run Code Online (Sandbox Code Playgroud)
这些值正在添加,但是在添加set_value和reset_value词典之后,我想清除这两个词典set_value和reset_value,但是当清除set_value和reset_value时,dict_set和dict_reset中的数据也被清除了.
任何人都可以帮助我,在这种情况下如何创建词典的深层副本...