當呼叫 ToList() 時,它會建立一個新清單嗎?
在這種情況下,我們正在使用一個名為MyObject 具有名為 SimpleInt 的屬性。假設我們有一個 MyObject 實例的清單。如果我們要在此清單上執行 ToList() 並隨後修改新清單中某個元素的 SimpleInt 屬性,此變更是否會傳回原始清單?
理解 ToList( ) 函數
ToList() 方法旨在建立原始清單的新副本。但是,在這種特定情況下,我們正在處理引用類型(即 MyObject 是引用類型)。這意味著當我們使用 ToList() 建立新清單時,新清單將包含與原始清單相同的物件的參考。
引用類型的後果
由於 MyObject 是引用類型,因此更改新清單中引用的物件的 SimpleInt 屬性也會影響原始清單中的對應物件。這是因為兩個清單都指向相同的實例。
結構與類別
需要注意的是,此行為僅適用於引用型別。如果 MyObject 被宣告為結構體(值類型)而不是類別(參考類型),則透過 ToList() 新建立的清單將包含原始清單元素的副本。因此,對新清單中的結構元素所做的任何修改都不會影響原始清單。
以上是ToList() 建立清單的深拷貝還是淺拷貝?的詳細內容。更多資訊請關注PHP中文網其他相關文章!