遇到的问题:
将现有的一个集合赋值给另一个集合,但是在操作第二个集合进行数据变更的时候,第一个集合中的数据也会跟着改变
深度拷贝(已封装为一个泛型通用方法复制即用):
/// <summary>
/// 深度拷贝集合方法----解决一个集合引用另一个集合导致一起改变
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list1"></param>
/// <param name="list2"></param>
/// <returns></returns>
public static List<T> DeepCopyList<T>(IList<T> list1 , out List<T> list2)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, list1);
ms.Position = 0;
list2 = (List<T>)bf.Deserialize(ms);
return list2;
}
使用到的类(类需要标记可序列化特性):
[Serializable]
public class Student
{
public