Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >遍历列表并修改对象就是更新原始的

遍历列表并修改对象就是更新原始的
EN

Stack Overflow用户
提问于 2013-01-11 14:23:52
回答 4查看 331关注 0票数 1

由于某些原因,我似乎找不出我做错了什么。我尝试了一些东西,每次原始记录都会被修改。

我有一个特定类的列表。我正在迭代列表,如果满足特定条件,我需要为此迭代创建一个重复项,修改两个值,然后将其添加到最终列表中。除了每次我修改我创建的副本时,这些值都会在原始副本中修改。数据是设置为列表的绑定列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// MyClasses is a BindingList<MyClass>
List<MyClass> classesToSave = new List<MyClass>();
foreach (var class in MyClasses)
{
    classesToSave(class);

    if (class.NeedsDupe)
    {
        MyClass dupeClass = new MyClass();
        dupeClass = class;
        dupeClass.NeedsDupe = false;
        dupeClass.IsDupe = true;
        classesToSave(dupeClass);
    }
}

假设通过第一次迭代,MyClasses中的第一项具有class.NeedsDupe == true和class.IsDupe == false。如果在满足条件之前将类添加到classesToSave,则classesToSave中的唯一条目是原始类(class.NeedsDupe == true和class.IsDupe == false)。但是,当满足条件并修改dupeClass对象时,在将dupeClass添加到classesToSave之前,会修改classesToSave中的原始条目(也是唯一的条目)。

我是不是完全漏掉了什么?我有一种感觉,我正在画一个脑筋急转弯,也许需要一个旧物体的参考?或者我以某种方式复制了BindingList的属性,并且当我更改我认为是新对象的dupeClass对象时,实际上是导致更改返回到原来的对象?

谢谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-11 14:48:21

这就是类的本质,它们是引用类型。为MyClass创建复制构造函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MyClass
{
   public MyClass(MyClass myClass)
   {
       //Assign the properties here
       //this.x = myClass.x;
       //....
       //....
   }
}

然后你调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyClass dupeClass = new MyClass(@class);
票数 2
EN

Stack Overflow用户

发布于 2013-01-11 14:26:47

以下几行是有问题的。dupeclass引用这个类;它们指向同一个对象。将dupeClass的属性设置为与class的属性相等,而不是使它们相等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyClass dupeClass = new MyClass();
dupeClass = class;
票数 2
EN

Stack Overflow用户

发布于 2013-01-11 14:27:41

在此行中,您将创建一个新的MyClass实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MyClass dupeClass = new MyClass();

但随后您会立即用原始文件覆盖它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dupeClass = class;

从那时起,dupeClassclass都引用了同一个对象,因此对dupeClass的更改也会对class进行更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14280107

复制
相关文章
无法加载 DLL xpstar.dll 或它引用的一个 DLL。原因: 126(找不到指定的模块。)。
需要复制数据库文件,把SQL服务停了,不使用脱机或者分离是觉得比较慢,结果就是再次重启服务后,SQL开始报错:
_一级菜鸟
2020/08/02
2.3K0
[754]ImportError: DLL load failed: 找不到指定的模块
在tensorflow的学习中,想使用tensorflow-gpu版的学习,充分利用计算机。但是跟网上很多博主的方法安装gpu,cuda是安装成功了,但是却一直报以下一个错误。
周小董
2020/02/14
14.7K0
[754]ImportError: DLL load failed: 找不到指定的模块
OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.
如果你在使用Python开发时遇到了类似的错误消息,例如OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll',那么你可能是在尝试使用CUDA相关的功能,但缺少了相应的CUDA运行时库文件。
大盘鸡拌面
2023/11/28
9080
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
最近在师姐机器上跑实验的时候,想利用matplotlib包来绘制损失曲线图,安装过程中碰到了一些小麻烦,感觉之前好像也碰到过类似的问题,网上一搜什么numpy、matplotlib、pillow包版本冲突啊,然后就是各种尝试,直至重装Anaconda,当时特头疼,最后无意中解决了,今天又碰到了类似的问题,这次记录下来防止忘记
全栈程序员站长
2022/09/14
6.8K1
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
解决module = loader.load_module(fullname) ImportError: DLL load failed: 找不到指定的模块。
在使用Python时,有时可能遇到​​ImportError: DLL load failed: 找不到指定的模块​​错误。这个错误通常是由于无法找到依赖的动态链接库(DLL)文件引起的。本篇文章将介绍一些解决这个问题的方法。
大盘鸡拌面
2023/10/25
1.8K0
[Python] ImportError: DLL load failed … 找不到指定的模块 此类问题解决方法
最近升级 Python 项目,由 Python2.7 升级到 Python3.8.3,项目使用了 PySide2,对于较新的Python3.8.3 , PySide2 可能存在些许不兼容问题,环境配置完成后,出现一连串的 ImportError: DLL load failed 找不到指定模块 对于很多 Python 开发者来说,这类问题最为头疼,不知道如何下手解决。
全栈程序员站长
2022/09/14
11.1K0
[Python] ImportError: DLL load failed … 找不到指定的模块 此类问题解决方法
找不到mfc110.dll,无法执行代码
运行完直接即可进行下载,安装后解决对应的所有问题。 傻瓜式安装,自动安装到C:\Windows\System32下。 comct232.ocx 6.0.98.39 comct332.ocx 6.7
红目香薰
2022/11/30
8710
找不到mfc110.dll,无法执行代码
找不到或无法加载主类 Hello
http://jingyan.baidu.com/album/f96699bb8b38e0894e3c1bef.html?picindex=1
用户9184480
2024/12/13
350
安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
解决方法:降低tensorflow版本,版本太高。在terminal复制粘贴以下命令:
川川菜鸟
2021/10/18
1.4K0
Remote Desktop Services启动失败找不到指定的模块
Windows无法远程连接,排查发现是因为 Remote Desktop Services 无法启动 Remote DEsktop services 错误2,找不到指定的模块 (Windows 2016中为错误126,找不到指定的模块)
大大大黑白格子
2020/06/10
8.7K0
MICROSOFT REPORT VIEWER 2012之无法加载相关的dll
使用VS 2012开发报表, 如果是使用的微软的报表控件的话,默认是使用的MICROSOFT REPORT VIEWER 2012,本地开发基本上没问题,但是一发布服务器,就会发现坑了,微软挖坑从来就不打招呼,坑你没商量。
雪雁-心莱科技
2018/12/27
9090
错误: 找不到或无法加载主类(java)
很多刚学java的同学基本上都遇到过这个问题,刚才我刚了一下idea中入口雷类的包的地址,就出现这个了。原因很简单,在此特做记录,希望能帮助到点开这个文章,遇到错误的你。
手撕代码八百里
2020/07/28
5K0
java提示找不到或无法加载主类
背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类;C:
千往
2018/01/24
1.9K0
java提示找不到或无法加载主类
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
声明一下,本帖子是记录本人解决问题得步骤,并不一定适合所有人,你们能找到这个博文,其他人得估计也试过了不行,没必要回帖喷我,另外360里面有dll修复,网上也大把得修复工具,这个只是手动修复了我自己遇到得问题。
全栈程序员站长
2022/09/14
4.3K0
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说模块已加载,但找不到入口点DLLRegisterServer[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/08/01
52K1
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
pycharm添加anaconda解释器_anaconda找不到指定模块
PyCharm使用anaconda新建环境是只包含一些基础包,后续如果想要如Scrapy.requests等库的话则需要自己在解释器页面添加了(ctrl+alt+s进入解释器设置页面)
全栈程序员站长
2022/09/27
2.2K0
pycharm添加anaconda解释器_anaconda找不到指定模块
IDEA 出现错误:找不到或无法加载主类
解决方法: idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 解决方法二: 在这里设置自己的java文件的目录位置
孙晨c
2019/09/10
6.7K1
IDEA 出现错误:找不到或无法加载主类
idea 错误:找不到或无法加载主类 解决
问题出现的很莫名其妙,, 在项目的PATH 中,将path修改为跟当前项目在一个路径下就可以了
MickyInvQ
2020/09/27
12.6K0
idea 错误:找不到或无法加载主类 解决
php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法
在StackOverflow得到最终原因及解决办法 http://stackoverflow.com/questions/16424117/php-unable-to-load-php-curl-dll-extension libeay32.dll and ssleay32.dll have to be path-accessible for php_curl.dll loading to succeed. Copying them into System32 (or even into the Windo
庞小明
2018/03/09
9480
Java提示错误: 找不到或无法加载主类
检查java在Idea终端中是否可用,如不可用,编辑编译器输出路径:文件→项目结构→模块→路径→输出目录 或 设置→工具→终端→项目设置→环境变量
无刺鱼
2022/03/29
2.1K0

相似问题

使用Gulp w/特定模式重命名文件

16

Gulp w/Browsersync Boot,但不重新加载页面

24

h/w和s/w中断的实现差异

10

因编译错误而中断的凤凰活重加载

12

BrowserSync (w/ gulp)工作非常慢

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文