前言
有時候我們想轉殖乙個list去做別程式設計客棧的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。
嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。
下面話不多說了,來一起看看詳細的介紹吧
一、反射
public static list clone(this list list) where t : new()}}
items.add(model);
}return items;
}二、序列化(依賴newtonsoft.json)
public static list clone(this list list) where t : new()
三、序列化(binaryformatter)
public static list clone(this list list)}測試
private void test()
); list items = list.clone();
list[0].redisip = "456";
logmessager.show(":", list[0].redisip, items[0].redisip);
}注意事項:
第一種方式無需任何依賴。
第二種方式需要ne如果專案中沒有用到它,不推薦使用這種方式。
第三種方式序要給引用型別實體加上[serializable]特性
總結本文標題: c# list引用型別轉殖的3種方法
本文位址:
C List引用型別的轉殖
有時候我們想轉殖乙個list去做別的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。一 反射 1 public static listclone this li...
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...