/// <summary>
/// 深拷贝
/// </summary>
/// <typeparam name="T">对象类型(必须是Serializable类)</typeparam>
/// <param name="realObject">对象</param>
/// <returns></returns>
public static T Clone<T>(T realObject)
{
using (Stream objectStream = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(objectStream, realObject);
objectStream.Seek(0, SeekOrigin.Begin);
return (T) formatter.Deserialize(objectStream);
}
}
static void Main(string[] args)
{
var lsttt = new List<tt>();
var tt1 = new tt
{
Name = "obj1",
Sex = "20"
};
lsttt.Add(tt1);
var l333 = new List<tt>
{
Clone<tt>(lsttt[0])
};
l333[0].Name = "333333333";
foreach (var item in lsttt)
{
Console.WriteLine(item.Name);
}
Console.ReadKey();
}
[Serializable] //一定得序列化
public class tt
{
public string Name { get; set; }
public string Sex { get; set; }
}