我正在使用一个对象列表创建一个小C#应用程序,我有一个非常noob的问题:
首先我填充我的对象'A',然后我添加名为'lstA'的列表:
List<List<A>> Lst_LstA = new List<List<A>>(); // List of List<A>
List<A> lstA = new List<A>(); // List of my object <A>
A myA = new A();
A.xxx = xx;
A.yyy = yy;
lstA.Add(A);
Lst_LstA.Add(lstA);
lstA.Clear();
我的问题是什么?非常简单:当我打电话给 lstA.Clear()时,它会清除我的 lstA 列表,完美,但是......我的 lst_LstA&lt; &gt; 列表。
我需要清除 lstA 列表,但只清除这些列表。
为什么Clear()也会修改其他列表?如何解决这个问题?
非常感谢,
最好的问候,
答案 0 :(得分:2)
问题在于,当您将lstA添加到lst_lstA时,您将通过引用添加 - 即您只是添加指向列表的指针。
此方法的唯一方法是将lstA的副本添加到lst_lstA