完整复制小列表到容器列表,不仅参考

时间:2013-05-09 19:41:48

标签: c# list object reference

我希望new关键字不仅可以创建一个新对象,还可以使用唯一的内存引用。如果我这样做,并且在清除“tinyList”之后,bigList也将被清除。

bigList.Add(new bigListObject(tinyList));

bigList是一个List,Construcotr看起来像

public Foo(List<SmallClass> in)
    {
        _test = new List<SmallClass>();
        _test = in;
    }

这有效,但是如何清除tinyList,填充它,并继续添加到bigList? 整个想法是有一个大的列表和一个小的添加..现在我有两个不同类的两个列表,几乎相同。 感谢

1 个答案:

答案 0 :(得分:3)

您可以将引用复制到新列表中:

public Foo(List<SmallClass> in)
{
    _test = new List<SmallClass>(in);
}

现在_testin指向两个不同的列表,因此从一个列表中删除对象不会影响另一个列表。

但是,它们是相同的引用。因此,编辑列表SmallClass中的in个实例之一将影响列表_test中的相应实例,因为引用指向相同的实例。

如果您需要SmallClass个实例的副本,则需要实施复制方法(或使用object.MemberwiseClone