如何根据以下条件删除字典中的指定键?
foreach (var kvp in dict)
{
if (kvp.Key.Contains('/'))
{
//delete the key
}
}
Run Code Online (Sandbox Code Playgroud)
你会这样做:
foreach(var keyToDelete in dict.Keys.Where(x => x.Contains('/')).ToList())
dict.Remove(keyToDelete);
Run Code Online (Sandbox Code Playgroud)
这里重要的是呼吁ToList()之后Where.这将把应删除的所有键放入一个可以迭代的新列表中.
如果你没有尝试这个代码,ToList()你会得到一个InvalidOperationException:
收集被修改; 枚举操作可能无法执行.
请注意,此代码比当前接受的答案更有效.它只复制需要删除的密钥而不是完整的字典.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |