清除字典词典

时间:2017-04-18 08:08:42

标签: c#

我在一个类中有一个私有字段,这是一个字典字典。

private readonly Dictionary<string, Dictionary<int, int>> 
myDict = new Dictionary<string, Dictionary<int, int>>();

有关清算myDict的最佳做法是什么?我是否必须循环所有值并在每个值上调用清除,或者如果我在myDict上调用清除那就足够了吗? 我也在寻找最好的表现。

3 个答案:

答案 0 :(得分:7)

如果您致电Clear(),它将清除主词典。如果没有对内部字典的引用,垃圾收集器将清理它们,因此不需要在它们上面调用Clear()。如果它们仍被引用,则必须首先引用它们,否则可能会导致无效状态。

答案 1 :(得分:0)

在myList上调用Clear这是最好的方法。

在你的代码中,我可以看到myList是只读的,检查它是否可以清除。

答案 2 :(得分:0)

如果您将二级词典的(指针)副本保留在某处,则可以清除所有这些词典。如果你只是直接通过&#34;母亲&#34;垃圾收集器迟早会收集它们的方法中的字典或临时变量,这样你就不必单独Clear