class Class2
{
public string ven;
public List<string> lname = new List<string>();
}
List<Class2> l = new List<Class2>();
List<string> lhs = new List<string>();
Class2 c2 = new Class2();
c2.ven = line_split[0];
c2.lname = lhs;
l.Add(c2);
lhs.Clear();
执行lhs.Clear()
时,它会清空对象l
。
我的替代方案是什么?
答案 0 :(得分:2)
如果您不想清除lhs
清除存储在对象上的列表,则必须在将列表分配到对象的字段时复制该列表:
c2.lname = new List<string>(lhs);
理想情况下,您将在Class2
的构造函数中执行此操作。
答案 1 :(得分:1)
lhs和lname变量指向同一个List<string>
对象。所以,当你清除lhs时,lname自然也会被清除(它们指向同一个对象!)
如果您不想要此行为,请将其复制到您的类字段:c2.lname = new List<string>(lhs)