C# List 添加元素的问题(为什么我的元素都变一样了) 刚刚接触C#,囫囵吞枣的确让我吃了不少亏。。。今天就是一个教训。。。 今天用一个List容器,怎么知道在一个while循环中用List.Add()函数添加进去的元素会把前面已经添加进去的元素都改为一样了。面对这个问题我纳闷了很久了,一直都找不到答案。最后还是CSDN帮了我,我在帖子上发现我自己的错误。 原来一开始我就错了,我一直以为List容器会把添加进去的元素内容进行复制,这样的话,在元素被添加进去了之后我再去改变元素的值,是不会影响List容器里面的值的,可是我错了。List并没有对内容进行复制,它只是复制了元素的地址,只是保存了地址,对地址里面的内容是没有进行保护的。这么说的话,在每次我添加完元素之后我又对元素进行修改的话,就会把前面已经添加的元素都一起修改了。所以会出现添加进去的元素的值都变一样了。 知道问题的关键,解决就很容易。只要在每次向List添加完元素之后,在new一个地址给元素,这样,就算元素再改变,也不会改变List中的元素的值了。