想请问下c#winform开发,经常出现继承出现 集合已修改,可能无法执行枚举操作

ou630j 2016-05-17 03:31:23
想请问下c#winform开发,经常出现继承出现 集合已修改,可能无法执行枚举操作

请问下这个是基类的dll的问题,还是我哪里需要修改的问题, 有时候更改dll的属性改为允许复制又可以,又时候又不行,请问怎么解决
...全文
846 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ou630j 2016-05-17
  • 打赏
  • 举报
回复
1

类似于这样的问题,因为窗体是继承于别人写的dll上,所以我也没有源代码

现在我不知道这样的问题是基类的dll引起,还是我自己的问题引起的,我还未写任何代码
而且这个问题经常出现,有时候替换了dll又可以,又时候把dll改成 始终复制又可以。

然后再重新打开又不可以。
ou630j 2016-05-17
  • 打赏
  • 举报
回复
仅仅是继承就这样,代码都未写,无法调试
  • 打赏
  • 举报
回复
你在报 bug 时,主观强加的、瞎猜的成分很强,而对于一个程序员“该如何报bug、截图、描述问题场景”则完全不对路数。这要彻底改变,不然在小作坊里会害了你。
  • 打赏
  • 举报
回复
引用 楼主 ou630j 的回复:
想请问下c#winform开发,经常出现继承出现 集合已修改,可能无法执行枚举操作 请问下这个是基类的dll的问题,还是我哪里需要修改的问题, 有时候更改dll的属性改为允许复制又可以,又时候又不行,请问怎么解决
你们公司老大会哭死在工位上的。 你应该把异常贴出来,针对异常调试来解决问题。不要靠“听别人嘴里说的字眼儿哪一个最接近”来学习技术。有些刚实习的学生,靠这个招数来骗得领导以为他(她)好像挺好学。其实这样学习和编程,经常是误导你自己。 如果你调试就知道了,你的vs调试器会中断在“集合已修改”的那个集合变量的枚举语句上,你就知道哪一个集合被修改了。解决它的办法就是要在另外一个不会被改动的集合上去操作,例如把代码
foreavh(var x in arr)
改为
foreach(var x in arr.ToList())
但是我前边已经说过了,不要看了这个代码就来瞎猜。你应该稍微搞懂一些原理,自己去调试你的代码。不然你公司的老大看到你经常因为瞎猜而说出误导大家的话,他心里一定会有点恨你的。
Poopaye 2016-05-17
  • 打赏
  • 举报
回复
foreach里面不能修改集合 要修改请用for替换
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 依据所提供的资料,我们深入剖析此问题以及所给出的两种算法方案。 ### 问题背景 该问题源自王晓东编撰的《算法设计与实验题解》一书,书中阐述了一个值得注意的数学议题:针对一本页码从1到n顺序编号的书籍,要求统计所有页码中数字0至9各自出现的频次。例如,若n=13,则页码序列为1、2、...、13,其中数字1出现5次(体现在1、10、11、12、13中),数字0出现1次(体现在10中)。 ### 问题描述 具体而言,我们需要开发一种算法,其输入参数为一个正整数n,输出结果需为0至9这十个数字各自出现的频次。所有页码均以十进制形式呈现,且不包含任何前导零,即不会出现如006之类的页码表示。 ### 解决方案一:时间复杂度为O(n*log10(n))的算法 首先,介绍一种时间复杂度为O(n*log10(n))的算法实现。其核心构思在于遍历从1到n的每一个数值,然后逐一分解每个数值的各个位,并统计各类数字出现的频次。具体步骤如下: 1. 初始化一个长度为10的数组`count`,用于记录0至9每个数字出现的频次,初始值均为0。 2. 从1开始遍历至n,对于每一个数值i,将其转换为整数并进行以下操作: - 利用循环结构,持续将当前数值除以10,获取余数(即当前最低位的数字),并累加到对应的计数器中。 3. 遍历完成后,输出`count`数组中的每一个元素,即为所求的结果。 ### 解决方案二:优化算法 为了提升效率,提出了一种更为优越的算法。该算法基于以下观察:在1到10^n-1之间的任意区间内,每一种数字0至9出现的频次是相等的。例如,在1到999之间,每一种数字0至9出现的频次均相...

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧