C# List<T> 引用类型赋值问题

今天用泛型foreach遍历赋值引用类型。碰到一个很坑爹的问题,求解答? 入下图:第一例的数据被第二列数据覆盖

图片说明
图片说明

lll.add(item); 添加的是list 所以你的l里面每一个元素都是list
可以直接添加
for (int i = 0; i < 2;i++ )
{
List list = new List();
list.Add(new class1(Guid.NewGuid().ToString(), "1"));
list.Add(new class1(Guid.NewGuid().ToString(), "1"));
l.Add(list);
}

完全没看明白,根据以上的代码逻辑,监视到的值应该是正确的啊,哪里来的覆盖?

因为你的Class1是引用类型,自始至终都只声明了两个Class1,最后的List里的类是指向这两个类的,所以显示出来是“覆盖”