更改变量也会更改另一个变量。防止变量具有相同的引用

| 我有一个类,构造函数需要一个类和其他类似的东西:
public class SomeClass<T>
{
    //global private variables for class
    List<T> originalList = new List<T>;
    List<T> tempList = new List<T>;

    public SomClass(List<T> listParam, string name, ..etc)
    {
        originalList = listParam;
        tempList = listParam;

        originalList.removeAt(0);  // this also removes an item from tempList.


    }
}
我知道这是因为originalList和tempList具有相同的引用。我如何使它们具有不同的引用。我使用tempList过滤结果,每当要刷新时,我都使用originalList     
已邀请:
您可以复制
listParam
,而不仅仅是分配其引用:
tempList = listParam.ToList();
请注意,这不会为列表中的每个对象创建一个副本,而只是为这些对象创建引用的副本。     
而不是接受
List<T>
,而是接受
IEnumerable<T>
。如果您想要一个具体的清单,请在其上拨打
.ToList()
。 原始来源不受影响,并且您有副本。您还可以选择支持该界面的任何东西。 编辑:我误解了问题中的代码,您的副本位于同一课程中。好吧,它在两个地方,即类和调用者。我支持我的建议,但是,是的,您需要两次调用
.ToList()
,每个拷贝一次。     

要回复问题请先登录注册