zoukankan      html  css  js  c++  java
  • C# for循环或者foreach往List中添加对象的时候前面的数据总被最后加入的覆盖

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

          

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

       

        问题原因:对于List.Add(),如果T是基本类型(值),则添加的为值;若T为引用类型(对象),则添加的为引用。(即值类型、引用类型的区别和原理) 
    所以,循环添加时,添加的都是同一个对象引用,对象的成员值改变,List中所有对象的值就改变了。

        解决方案:

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

        

  • 相关阅读:
    撕衣服
    寒假作业1编程总结。
    C Traps and Pitfallss
    《彻底搞定C指针》文档整理
    C语言中内存分配 (转)
    ASCII
    ipad
    tour
    Diet
    第7章 输入与输出
  • 原文地址:https://www.cnblogs.com/pukua/p/8889418.html
Copyright © 2011-2022 走看看