有時候我們想轉殖乙個list去做別的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。
嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。
一、反射
1二、序列化(依賴newtonsoft.json)public
static listclone(this listlist) where t : new()2
17}18}
19items.add(model);20}
21return
items;
22 }
1三、序列化(binaryformatter)public
static listclone(this listlist) where t : new()2
1測試public
static listclone(this listlist)
210 }
注意事項:
第一種方式無需任何依賴。
第二種方式需要newtonsoft.json,如果專案中沒有用到它,不推薦使用這種方式。
第三種方式序要給引用型別實體加上[serializable]特性
C List引用型別轉殖的3種方法
前言 有時候我們想轉殖乙個list去做別程式設計客棧的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。下面話不多說了,來一起看看詳細的介紹吧 一 反射 publ...
C List列表的深複製,引用型別深複製
student實體類 public class student public int age 準備乙個list列表,裡面放兩個元素。list originallist new list student s1 new student originallist.add s1 student s2 new...
C List列表的深複製,引用型別深複製
需求 深複製該列表。student實體類 public class student public int age 準備乙個list列表,裡面放兩個元素。list originallist new list student s1 new student originallist.add s1 stud...