[英]How can I replace the contents of one List<int> with those from another?
我使用了两个可以为空的int [] s:
int?[] OriginalPterodactylVals = new int?[NUMBER_OF_BABES_IN_TOYLAND];
int?[] ChangedPterodactylVals = new int?[NUMBER_OF_BABES_IN_TOYLAND];
...和这个代码来同步它们:
ChangedPterodactylVals.CopyTo(OriginalPterodactylVals, 0);
...但是现在我已经将int []更改为Lists并且还没有找到或想出如何完成同样的事情。
当一个“复制并粘贴”到另一个中时,它们在列表中都具有相同数量的值。
您可以通过从现有列表构建新列表来执行浅表副本:
list2 = new List<int>(list1);
请注意,这会创建一个新列表,而不是修改list2
最初引用的列表(如果有)。
这是一种使用AddRange
修改现有列表而不是创建新列表的方法:
list2.Clear();
list2.AddRange(list1);
这是使用for
循环的另一种方法。 这要求列表具有相同的长度,但您说明在您的问题中就是这种情况。
for (int i = 0; i < list1.Count; ++i)
{
list2[i] = list1[i];
}
你有没有尝试过:
OriginalPterodactylVals.Clear();
ChangedPterodactylVals.ForEach(val => { OriginalPterodactylVal.Add(val); });
如果要从现有列表初始化新列表,
List<int> a;
List<int> b = new List<int>(a);
该方法利用接受IEnumerable<T>
的List<T>
构造函数
http://msdn.microsoft.com/en-us/library/fkbw11z0.aspx
注意使用该构造函数,您还可以从数组初始化列表
int[] a = new int[42];
List<int> b = new List<int>(a);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.