清除词典的字典
我有一个类字典中的私有字段。清除词典的字典
private readonly Dictionary<string, Dictionary<int, int>>
myDict = new Dictionary<string, Dictionary<int, int>>();
有关清除myDict
的最佳做法是什么?我必须循环所有的值,并致电清除每个或是否足够,如果我只是打电话清除在myDict
??
我正在寻找最佳性能。
如果您拨打Clear()
,它将清除主字典。如果没有对内部字典的引用,垃圾收集器将清除它们,因此无需对它们调用Clear()
。如果它们仍然被引用,则必须首先对这些引用进行重新引用,否则可能会导致无效状态。
我不叫它一个列表:)。为了这个问题,我只是改了名字。 – Rami
那么不要把它称为你的问题列表。 –
可能最有效的是使用'myList = new Dictionary
刚刚称为清除myList这是最好的方法。
在你的代码中,我可以看到myList是只读的,检查它是否可以被清除。
'只读'表示您不能更改链接的实例,而不是内容。它不是'const'。 –
如果你保留(指针)二级字典的副本的某个地方,清除所有的二级字典是很有用的。如果您只是直接通过“母亲”字典或方法中的临时变量访问它们,那么垃圾收集器迟早会收集它们,因此您不必单独使用这些方法Clear
。
这取决于你的前提是你只是想擦去两个字典中的所有记录,并与空字典工作,我很可能只是创建一个新的实例情景 –
:'myList中=新词典>(); '... – Fabjan