C#字典遍历时能删除元素吗

   2024-10-02 2430
核心提示:在遍历字典的过程中删除元素是不安全的,会导致遍历过程中出现异常。这是因为在遍历的过程中,字典的结构会发生变化,可能会导致

在遍历字典的过程中删除元素是不安全的,会导致遍历过程中出现异常。这是因为在遍历的过程中,字典的结构会发生变化,可能会导致遍历器失效或者引发并发修改异常。

如果需要在遍历过程中删除元素,可以先将需要删除的元素的键收集起来,然后再遍历这些键进行删除操作。示例代码如下所示:

Dictionary<int, string> dict = new Dictionary<int, string>();// 添加元素dict.Add(1, "one");dict.Add(2, "two");dict.Add(3, "three");dict.Add(4, "four");// 收集需要删除的键List<int> keysToRemove = new List<int>();foreach (var pair in dict){    if (pair.Key % 2 == 0)    {        keysToRemove.Add(pair.Key);    }}// 遍历收集到的键进行删除操作foreach (var key in keysToRemove){    dict.Remove(key);}

这样就可以在遍历字典的过程中安全地删除元素。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号