我在一个类中有一个私有字段,这是一个字典字典。
private readonly Dictionary<string, Dictionary<int, int>>
myDict = new Dictionary<string, Dictionary<int, int>>();
有关清算myDict
的最佳做法是什么?我是否必须循环所有值并在每个值上调用清除,或者如果我在myDict
上调用清除那就足够了吗?
我也在寻找最好的表现。
答案 0 :(得分:7)
如果您致电Clear()
,它将清除主词典。如果没有对内部字典的引用,垃圾收集器将清理它们,因此不需要在它们上面调用Clear()
。如果它们仍被引用,则必须首先引用它们,否则可能会导致无效状态。
答案 1 :(得分:0)
在myList上调用Clear这是最好的方法。
在你的代码中,我可以看到myList是只读的,检查它是否可以清除。
答案 2 :(得分:0)
如果您将二级词典的(指针)副本保留在某处,则可以清除所有这些词典。如果你只是直接通过&#34;母亲&#34;垃圾收集器迟早会收集它们的方法中的字典或临时变量,这样你就不必单独Clear
。