当使用AddRange
方法将一个集合添加到另一个集合时,如果原始集合发生了更改,那么目标集合也会受到影响。下面是一种解决方法:
List sourceList = new List() { 1, 2, 3 };
List targetList = new List() { 4, 5, 6 };
List tempList = new List(targetList); // 创建一个临时列表来存储目标列表的副本
tempList.AddRange(sourceList); // 将源列表添加到临时列表中
targetList = tempList; // 将临时列表赋值给目标列表
Console.WriteLine(string.Join(", ", targetList)); // 输出结果为 "4, 5, 6, 1, 2, 3"
在上面的代码中,我们创建了一个临时列表tempList
,并将目标列表targetList
的副本赋值给它。然后,我们使用AddRange
方法将源列表sourceList
添加到临时列表中。最后,我们将临时列表赋值给目标列表,这样就可以确保目标列表不会受到原始列表的更改的影响。
请注意,这种解决方法仅适用于值类型的集合(例如List
),对于引用类型的集合(例如List
)可能需要进行深拷贝来避免更改原始集合。