簡體   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