错误备忘录之List元素遍历改变

来源:互联网 发布:京东店铺怎么优化 编辑:程序博客网 时间:2024/05/22 12:36
最近用到List来装载连接客户端的对象,在连接心跳中遍历删除List元素是发生异常,经查询发现C#在遍历之前会锁定List的元素位置信息,如果删除后它还是会向后遍历,然后就会出现越界的异常,先采用如下方法即可避免:
List<User> temp_delete=new List<User>();  //建立临时List添加要删除的元素                                    for (int i = g_sensor_List.Count - 1; i >= 0; i--)//添加心跳停止的传感器                {                    if (g_sensor_List[i].client_exsit == false)//g_sensor_List为主List                    {                        temp_delete.Add(g_sensor_List[i]);                                                                                           }                }                for (int i = temp_delete.Count - 1; i >= 0; i--)//删除心跳停止的传感器                {                    RemoveUser(temp_delete[i]);//将临时List中和主List对应的元素删除,RemoveUser为自己编写函数                                    }


0 0
原创粉丝点击