繁体   English   中英

如何替换一个List的内容 <int> 与另一个人?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM