1. 程式人生 > >把一個List<T>的數據復制至另一個List<T>

把一個List<T>的數據復制至另一個List<T>

控制臺輸出 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()
        {
            
var 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); } }
Source Code

方法四,直接加載法:
技術分享圖片

技術分享圖片
 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>