• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【C#】List列表的深复制,引用类型深复制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

需求:深复制该列表。

 

Student实体类:

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
}

 

准备一个List列表,里面放两个元素。

List<Student> originalList= new List<Student>();

Student s1 = new Student(){ Name = "A", Age = 10 };
originalList.Add(s1);
Student s2 = new Student(){ Name = "B", Age = 12 };
originalList.Add(s2);

 
定义一个深复制List列表的方法。

public List<Student> CopyList(List<Student> originalList)
{
    List<Student> list = new List<Student>();

    foreach (Student obj in originalList)
    {
        Student s= new Student();

        s.Name= obj.Name;
        s.Age= obj.Age;

        list.Add(s);
    }
    return list;
}

调用该方法即可得到一个新的列表。

List<Student> newList = CopyList(originalList);

最后测试:
测试是否真的是深复制,而非浅复制。只要修改originalList(比如清空该列表),观察newList是否随之变化。

// 测试:修改源列表
originalList[0].Age = 15;
// 观察新列表是否有变化
System.Console.WriteLine(newList[0].Age);

其他参考:

http://stackoverflow.com/questions/35129819/how-to-make-a-deep-copy-of-a-list-of-object


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
用C#生成中文汉字验证码的基本原理(转)发布时间:2022-07-13
下一篇:
C#发布REST接口地址API服务发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap