基本说明
- 当List的元素类型是复杂类型时,使用它的拷贝函数拷贝出来的内容是浅拷贝的,不会自动再去调用元素的拷贝构造函数,如下例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DTATest
{
class Program
{
class Node
{
public int a;
public Node(int a)
{
this.a = a;
}
public Node(Node a)
{
this.a = a.a;
}
}
static List<Node> l, r;
static void Main(string[] args)
{
l = new List<Node>();
l.Add(new Node(1));
l.Add(new Node(2));
r = new List<Node>(l);
r[0].a += 2;
r[1].a -= 5;
Console.WriteLine(l[0].a + "," + l[1].a);
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DTATest
{
class Program
{
class Node
{
public int a;
public Node(int a)
{
this.a = a;
}
public Node(Node a)
{
this.a = a.a;
}
}
static List<Node> l, r;
static void Main(string[] args)
{
l = new List<Node>();
l.Add(new Node(1));
l.Add(new Node(2));
r = new List<Node>();
l.ForEach(i => r.Add(new Node(i)));
r[0].a += 2;
r[1].a -= 5;
Console.WriteLine(l[0].a + "," + l[1].a);
Console.Read();
}
}
}