我有一個名為ListA:List<string> allStuffs = ...
我想將串列參考ListB為List<string> secondList = allStuffs;
如果我做類似的事情secondList.Remove(someitem),它還會洗掉相同的專案allStuffs嗎?
uj5u.com熱心網友回復:
是的; 在這個例子中只有一個串列物件——不管...第一行是什么。List<string> secondList = allStuffs;不會創建新串列-它只是創建一個新的參考,并從中復制值allStuffs- 它本身只是一個參考(而不是串列本身)。
您可以隨意參考該串列物件:它們都只是實際串列所在位置的指示符。
因此,如果您遵循對要呼叫的物件的參考的副本Remove,則更改將從對同一物件的任何其他參考可見。
uj5u.com熱心網友回復:
是的,如上述答案中所述,它指向同一個串列。如果您不想在第二個更改任何內容時更改第一個串列,那么您可以像這樣使用它。
List<int> ls1 = new List<int>() { 1, 2, 3 };
List<int> ls2 = new List<int>(ls1);
ls2.Remove(1);
ls1仍然會有 1,2 和 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530225.html
標籤:C#列表
上一篇:從關鍵字中獲取列 計數出現
