当我在List <list <t>&gt;中复制List <t>时,为什么存在依赖关系?

时间:2016-12-05 14:01:12

标签: c# .net list ienumerable

我正在使用一个对象列表创建一个小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()也会修改其他列表?如何解决这个问题?

非常感谢,

最好的问候,

1 个答案:

答案 0 :(得分:2)

问题在于,当您将lstA添加到lst_lstA时,您将通过引用添加 - 即您只是添加指向列表的指针。

此方法的唯一方法是将lstA的副本添加到lst_lstA