【项目总结】ForEach时出错报"集合已修改;可能无法执行枚举操作"

C#中foreach出现“集合已修改 可能无法执行枚举操作”的解决方法 不要在枚举集合的操作(例如foreach)中去执行修改集合的操作。很多文章中提出解决方法是将foreach改为for循环,这里记录一种简便方法。如果需要修改集合,那么你应该先使用 ToArray() 方法,例如?1234foreach (var x in Mylist.ToArray()) { 这里执行可能修改Mylist的操作 }... 阅读详情

背景

这里写图片描述
选中全选时,把ListView对应的项选中

代码

m_PickServer.ForEach(delegate(string n)
{
    foreach (ListViewItem listItem in lstServerName.Items)
    {
        if (n == listItem.Text) listItem.Selected = true;
    }
});

报错:集合已修改;可能无法执行枚举操作
个人猜测:元素为值类型的集合,遍历时修改了值
查找引申:

1、想起以前有人问我 str.replace(“a”,”b”); 为何不成功?
2、dt.AddDays(1)为啥还是今天?

解决

原因
中间变量是m_PickServer,当全选时遍历m_PickServer,将ListItem设为选中状态。然后我遍历m_PickServer时,设置ListItem为选中,忘记了,选中时触发一个事件,将m_PickServer更新。

引申的解决

两个函数都不修改原来的数据,是返回一个新的数据。

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集 superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。 阅读详情

相关推荐

【electron】- 从零到一:在electron-vite项目中集成better-sqlite3的工程化实践

本文详细介绍了在electron-vite项目中集成better-sqlite3数据库的完整工程化实践。针对原生模块的编译挑战,提供了从环境配置、路径规划、服务封装到IPC通信的解决方案,并重点解决了开发与生产环境的数据库路径分离及打包部署等核心问题,帮助开发者构建稳定高效的Electron桌面应用数据层。

weixin_29306571的博客 202

C#关于foreach循环中【集合已修改,可能无法执行枚举操作】的处理

因foreach的只读操作,如果在迭代中修改枚举内容可能导致异常【集合已修改,可能无法执行枚举操作】,可以修改为for循环来替代它。

ylq1045的专栏 2467

ZYNQ 系统的IEEE1588 实现方法

zynq IEEE588/PTP 实现方案(讨论稿)

姚家湾博客 1万+

C#中foreach List循环操作出现“集合已修改;可能无法执行枚举操作”错误

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34390996的博客 1302

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器

基于多物理参数数据融合和先进人工智能算法的锂电池热失控监测传感器是多种方案中的优选项!是一种快速、准确、可靠、应用广泛的传感方案!可有效监测锂离子电池热失控风险,保障化学能储能电站安全!

chicheng_danxin的博客 2411

Pipeline更多理解

Pipe 类型用途VIGVideo Image Generator:用于图层显示,支持 scaling、rotationRGB简单图层显示,较低优先级DMA主要用于 writeback / WFD / composition output,即从 framebuffer 输出到外部设备(或 memory)Cursor小图层,用于显示指针等很可能是:分别用于主屏、仪表、虚拟显示的输出路径或者用于不同的 display 去做 GPU_TARGET / writeback 的拷贝你看到的意思。

Damon_X的博客 1052

C# 错误: 集合已修改,可能无法执行枚举操作

出错原因是使用了RemoveAt()函数移除了数据中的某一个数,导致数据发生了错位(参考链接一)第二种解决方法:调用ToArray()方法,然后再进行foreach循环。第一种解决方法:使用for循环。

m0_63893772的博客 3953

ELK - CentOS7 安装 elasticsearch 7.17.5

elk elasticsearch 安装

qq_19783793的博客 1461

【C#】集合已修改;可能无法执行枚举操作。

用foreach对集合进行修改或删除操作,这是不允许的。解决方案1:将集合转成数组foreach (var x in List.ToArray()) { }解决方案2:用for循环代替,并且一定是从大到小for (int i = max; i > min; i--) { }

zhaoyu_m69的博客 3778

CEEMDAN算法及其应用

本博文主要介绍CEEMDAN算法的原理及其在信号去噪方面的应用

总结论文中的算法并给出论文的复现代码 6万+

《QGIS快速入门与应用基础》009:国内镜像源(清华大学/阿里云)下载技巧

针对国内用户下载QGIS速度慢、易中断的问题,推荐使用清华大学和阿里云两大国内镜像源,提供3-10MB/s的极速下载方案。详细解析镜像源核心优势、分步骤下载指南及校验方法,对比清华(同步快、北方优选)与阿里云(南方节点多)的特点。针对常见问题如版本延迟、404错误等提供解决方案,并介绍搭配IDM等工具实现多线程加速的进阶技巧。通过镜像源+下载工具组合,用户可高效获取QGIS安装包,为后续系统安装奠定基础。

LuckyHanMo的博客 1731

C#任务并行库 (TPL)之Parallel.For和Parallel.ForEach循环、处理并行循环中的异常

在实际应用中,使用Parallel.For和Parallel.ForEach时需要考虑任务的复杂性、数据依赖性和同步问题,以确保并行循环能带来性能上的提升。同时,监控并行循环的执行情况和资源使用情况也是保证应用程序高效稳定运行的重要方面。

qq_35320456的博客 4873

主流反爬虫、反作弊防护与风控对抗手段

主流反爬虫、反作弊风控防护中的核心设计点与对抗策略

吴秋霖的博客 2554

HarmonyOS ArkTS API 24社区活动管理应用架构将界面状态与渲染逻辑紧密绑定,避免了命令式开发中繁琐的 DOM 操作,使得代码的可读性、可维护性

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 269

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。...

1.需求 从页面上获得多条记录到DataTable-->从DataTable里删除数据库里已有的记录--》把没有的记录插入到数据库中去。 2.实现思路:获得页面上所有记录,使用foreach循环DataTable把数据库里已有的删除掉,最后更新数据库。(放到DataTable前先判断是否在数据库中存在要好一点,这里只用来学习DataRow的方法) 3.问题:在foreach里进行...

weixin_30278237的博客 297

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

记录一个qt项目中使用C++ foreach循环的bug及解决办法

记录一个qt项目中使用C++ foreach循环的bug及解决办法

BlackAndWh1te的博客 1098

C++ foreach

#include<iostream> using namespace std; int main(){ int array[]={1,2,3,4}; for(int i:array){ cout<<i<<" "; } return 0; }

weixin_45607293的博客 374

集合已修改;可能无法执行枚举操作_foreach 集合又抛经典异常了,这次一定要刨根问底...

一:背景1. 讲故事最近同事在写一段业务逻辑的时候,程序跑起来总是报:集合已修改;可能无法执行枚举操作,硬是没有找到什么情况下会导致这个异常产生,就让我来找一下bug,其实这个异常在座的每个程序员几乎都遇到过,谁也不是一生下就是大牛,简单看了下代码,确实是多线程操作foreach,但并没有对foreach进行Add,Remove操作,扫完代码其实我也是有点懵,没撤只能调试了,在forea...

weixin_28991555的博客 1031

C#中出现“集合已修改;可能无法执行枚举操作”错误 foreach list.Remove()

原因:  在循环的时候,当集合被删除了一个item后,那么总数 count和索引就会发生改变.所以会报错 解决方法: 不要在枚举集合的操作(例如foreach)中去执行修改集合的操作。如果需要修改集合,那么你应该先使用 ToArray() 方法,例如 C# code ? 1 2 3 4 foreach 

u010032207的专栏 1万+

c++中的那些foreach循环

1. c++中的 for_each 函数 for_each()事实上是個 function template,其源码如下 link:http://www.cplusplus.com/reference/algorithm/for_each/?kw=for_each template&amp;lt;typename InputIterator, typename Function&amp;gt; Function ...

xiong_min的博客 7万+

forEach函数遍历数组报错

forEach函数遍历数组报错 代码: let s=new Set() [1,2,3].forEach(x=&gt;{ console.log(x) }) 预期结果打印出数组中的1,2,3 运行结果: [1,2,3].forEach(x=&gt;{ ^ TypeError: Cannot read property 'forEach' of undefined at Object....

o0__0的博客 3974

foreach标签使用报错

Servlet.service() for servlet [jsp] threw exceptionjavax.el.PropertyNotFoundException: Property [productName] not found on type [java.lang.String] at javax.el.BeanELResolver$BeanProperties.get(BeanEL...

Dawn的博客 1708

C++使用for和foreach,g++编译C++11程序

Windows的for each在Linux下编译不过去,所以找了一下C++使用foreach的通用方式。 //C++11 lambda 表达式解析 //http://www.cnblogs.com/haippy/archive/2013/05/31/3111560.html //C++ 中的 Lambda 表达式 //https://msdn.microsoft.com/zh-cn/libra

zhang的专栏 4952

List 循环移除方法总结

foreach进行add/remove操作出错源码解决方法 源码 List<String> list = new ArrayList<>(); list.add("wupx"); list.add("love"); list.add("huxy"); for (String temp : list) { if ("love".equals(temp)...

Jisan_Mo的博客 698
上一篇: 【出差总结】出差0902
下一篇: 【C#】知识点漫谈002
It_sharp
博客等级 码龄10年 51粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值