C List引用型別的轉殖

2022-02-23 04:57:09 字數 1010 閱讀 2948

有時候我們想轉殖乙個list去做別的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。

嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。

一、反射

1

public

static listclone(this listlist) where t : new()2

17}18}

19items.add(model);20}

21return

items;

22 }

二、序列化(依賴newtonsoft.json)

1

public

static listclone(this listlist) where t : new()2

三、序列化(binaryformatter)

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...