贊助廠商

娛樂城推薦

首頁

刊登資訊

  • 刊登者:匿名
  • 時間:2021-06-03 08:30:04

尚未解答C#- 陣列複製問題List

C#- 陣列複製問題List

後來去NuGet上面找還真有
順便跟大家分享一下
GitHub網址:https://github.com/ReubenBond/DeepCopy
一行 DeepCopier.Copy() 就完成了

而且授權是MIT,商用也可以喔~

/********************************/

大家好,小弟遇如標題的問題
就是如何更有效的複製陣列

假如情況如下:
class Student
{
public int ID = 0;
public string Name = '';
}

List<Student> List_1 = new List<Student>();

然後List_1裡面裝了若干個Student
我要把 List_1 完整複製出來
且複製出來的陣列內容物不要用到相同記憶體位址

目前作法是這樣:

List<Student> List_2 = new List<Student>();

foreach(Student OldStudent in List_1)
{
Student NewStudent = new Student();
NewStudent.ID = OldStudent;
NewStudent.Name = OldStudent;
List_2.Add(NewStudent);
}

總之就是new一個新的Student物件
重新賦值給它再加入新的陣列
這個方法實測有用

但問題來了
如果Student裡面又有別的List裝其他物件
然後那個List裡面的物件又有List裝其他物件....
以此類推,就是出現巢狀結構
變成我只要逢List就要開新的迴圈重新new物件賦值
這樣感覺工程太浩大了
所以想問看看有沒有更快的方法?

.網路上查到
 List_1.ForEach(i =>List_2.Add(i)) 或
 List<Student>List_2 = new List<Student>(List_1);
 試過沒有用,記憶體位置照樣是共用的

.目前的狀況不能使用Struct

謝謝各位

--

0個答案 C#- 陣列複製問題List

其他問題

友站連結