把一个数据集List复制至到另一个数据集List。
方法一,可以使用循环,然后把每一个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);
}
}
方法二,使用GetRange方法:
public void ListDemo_A()
{
var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 };
var listB = listA.GetRange(0, listA.Count);
}
方法三,深度拷贝:
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);
}
}
方法四,直接加载法:
public void ListDemo_C()
{
var listA = new List<int> { 2, 5, 6, 8, 23, 56, 4 };
var listB = new List<int>(listA);
}
方法五:使用序列化与反序列化:
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));
}
不管是哪一种方法,可以抽控制台输出ListB集合:
foreach (int inta in listB)
{
Console.WriteLine(inta);
}