我使用以下代码从字典中删除所有元素:
internal static void RemoveAllSourceFiles()
{
foreach (byte key in taggings.Keys)
{
taggings.Remove(key);
}
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用,因为InvalidOperationException抛出了.我知道这是因为在迭代它时修改了集合,但我怎么能改变它呢?
Mar*_*ell 33
一种更简单(也更有效)的方法:
taggings.Clear();
Run Code Online (Sandbox Code Playgroud)
是的,错误是因为故意更改数据会破坏迭代器.
请尝试使用Clear方法.
internal static void RemoveAllSourceFiles()
{
taggings.Clear();
}
Run Code Online (Sandbox Code Playgroud)
更新:正如Marc指出的那样,在修改它时,你不能继续迭代一个集合,因为迭代器无法恢复.有关详细信息,请阅读此SO问题的答案.
| 归档时间: |
|
| 查看次数: |
23470 次 |
| 最近记录: |