您正在反复添加相同的对象,这就是导致所有十个项目都指向同一个对象.
将对象添加到列表时,不会创建新对象.您正在添加对要添加的对象的引用.在此示例中,您将添加相同的引用10次.因此,每次访问该var1
属性时,您都在重写相同的值.
然后,当您循环遍历列表(将包含10个引用)时,所有这些引用都指向同一个对象.
class1的实例应该在循环中:
for (int i = 0; i < 10; i++) { class1 a = new class1(); iList.Add(a); iList[i].var1 = i; }