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