C List引用型別轉殖的3種方法

2022-09-26 03:09:14 字數 788 閱讀 1998

前言

有時候我們想轉殖乙個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...