把一個List<T>的數據復制至另一個List<T>
阿新 • • 發佈:2017-12-28
控制臺輸出 target 沒有 form logs src closed .cn 輸出
把一個數據集List<T>復制至到另一個數據集List<T>。
方法一,可以使用循環,然後把每一個T添加至另一個集合中去:
public void ListDemo() { var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 }; var listB = new List<int>(); foreach (int a in listA) { listB.Add(a); } }Source Code
方法二,使用GetRange方法:
public void ListDemo_A() { var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 }; var listB = listA.GetRange(0, listA.Count); }Source Code
方法三,深度拷貝:
public void ListDemo_B() {Source Codevar listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 }; var listB = new List<int>(); using (MemoryStream ms = new MemoryStream()) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, listA); ms.Position= 0; listB = (List<int>)bf.Deserialize(ms); } }
方法四,直接加載法:
public void ListDemo_C() { var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 }; var listB = new List<int>(listA); }Source Code
方法五:使用序列化與反序列化:
public void ListDemo_D() { var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 }; var listB = JsonConvert.DeserializeObject<List<int>>(JsonConvert.SerializeObject(listA)); }Source Code
不管是哪一種方法,可以抽控制臺輸出ListB集合:
foreach (int inta in listB) { Console.WriteLine(inta); }
以下內容於2017-12-17 21:43分添加:
上面幾個方法中,發現沒有入口,可以
運行:
f
把一個List<T>的數據復制至另一個List<T>