博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# for循环或者foreach往List中添加对象的时候前面的数据总被最后加入的覆盖
阅读量:5286 次
发布时间:2019-06-14

本文共 289 字,大约阅读时间需要 1 分钟。

   昨天我旁边小姐姐遇到一个问题,就是在执行for循环往list添加数据的时候,前面的数据信息总是被后面的数据信息所覆盖。

      

   这样编写就会造成这样的数据效果:(所有的数据都会被覆盖)

   

    问题原因:对于List.Add(),如果T是基本类型(值),则添加的为值;若T为引用类型(对象),则添加的为引用。(即值类型、引用类型的区别和原理) 

所以,循环添加时,添加的都是同一个对象引用,对象的成员值改变,List中所有对象的值就改变了。

    解决方案:

    方法一:每次在改变值之前重新new一下对象。

    

转载于:https://www.cnblogs.com/pukua/p/8889418.html

你可能感兴趣的文章
Xitrum学习笔记05 - 模板引擎
查看>>
JavaBase 变量,数据类型和运算符
查看>>
Android Audio Focus的应用(requestAudioFocus)
查看>>
1django 视图与网址
查看>>
实现如下语法的功能:var a = (5).plus(3).minus(6); //2
查看>>
MFC添加背景图片
查看>>
未找到arm-linux-gcc解决办法
查看>>
统计Xcode项目代码行数
查看>>
认识 service worker
查看>>
第五次团队作业:项目展示
查看>>
WIN10更新后,应用报“不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况”...
查看>>
C#面向对象(二):封装和继承
查看>>
range()函数
查看>>
cs20_3-3
查看>>
codevs1074 食物链
查看>>
少量标签下的模型
查看>>
17.python购物车程序作业
查看>>
lightoj 1027【数学概率】
查看>>
Apparmor——Linux内核中的强制访问控制系统
查看>>
HOJ-1005 Fast Food(动态规划)
查看>>