List循环添加对象时遇到问题的解决

1 var temp=new handleData();
2 foreach(var t in data)
3             {
4                 temp.DataValue = t.DataValue;
5                 temp.CreateTime = t.CreateTime;
6                 data1.Add(temp);
7             }

最后的结果是data里面的数据都是一样的

原因:temp是引用类型,所以最后都是最后一次改变的temp的值

解决办法:在循环里每一次都加new一下

 foreach(var t in data)
            {
                temp = new HandleData();
                temp.DataValue = t.DataValue;
                temp.CreateTime = t.CreateTime;
                data1.Add(temp);
            }
原文地址:https://www.cnblogs.com/engineerlm/p/7264361.html