美文网首页
C#list复制问题

C#list复制问题

作者: 路人yu路 | 来源:发表于2018-01-11 16:08 被阅读0次

在C#中list列表或者是list实体类,分为深复制与浅复制。
浅复制时,当复制的list值发生变化,原数据源也会发生变化。
test:
实体类:stu
public class stu{
public stu(){}
private string _id;
private string _name;
private string _sex;

    /// <summary>
    /// ID
    /// </summary>
    public string ID
    {
        set { _id = value; }
        get { return _id; }
    }
    /// <summary>
    /// 姓名
    /// </summary>
    public string Name
    {
        set { _name = value; }
        get { return _name; }
    }
    /// <summary>
    /// 性别
    /// </summary>
    public string Sex
    {
        set { _sex = value; }
        get { return _sex; }
    }

}
页面测试:
public void Search(){
//原数据类
List<stu> oldlist = new List<stu>();
//添加假数据
stu te = new stu();
te.ID = "1";
te.Name = "张三";
te.Sex = "女";
oldlist.add(te);
//新数据类
List<stu> newstu = new List<stu>();
newstu = oldstu;
for (int i = 0; i < newstu.Count; i++)
{
newstu[i].ID = "123";
newstu[i].Name = "123";
te.Sex = " 男";
}
}
这个时候,oldstu里面的数据已经改变。这个时候的list就属于浅复制。
因为两个list数据源调用属于一个地址,所以当newstu改变值时,oldstu的值也会改变。

list的深复制,不会改变原数据源。调用此方法即可
newstu = copyList(oldstu);
/// <summary>
/// list实体类深复制
/// </summary>
/// <param name="originalList">需要复制的实体类。根据复制的实体类给每个属性复制</param>
/// <returns></returns>
public List<stu> CopyList(List<stu> copyList)
{
List<stu> list = new List<stu>();

        foreach (stu obj in originalList)
        {
            stu s = new stu();
            s.ID = obj.ID;
            s.Name = obj.Name;
            s.Sex= obj.Sex;
            list.Add(s);
        }
        return list;
    }

相关文章

  • C#list复制问题

    在C#中list列表或者是list实体类,分为深复制与浅复制。浅复制时,当复制的list值发生变化,原数据源也会发...

  • c#list的用法

    一、声明:1、List myList = new List();T为列表中元素类型,现在以string...

  • 深复制浅复制?

    面试中问到的问题,讲真以前没有注意到这些问题,复制居然还分深复制浅复制,然后查阅文档明白,本质区别是:复制引用和复...

  • D13-D15

    网络问题,无法复制。

  • JavaScript里的深浅拷贝

    由于js里的数据类型分为简单类型和引用类型,所以在引用类型的复制问题上出现了深浅复制的问题。深复制和浅复制只针对像...

  • 深浅复制

    深浅复制和属性为copy,strong值的变化问题 浅复制:只复制指向对象的指针,而不复制引用对象本身。对于浅复制...

  • Python深复制与浅复制问题

    第一次遇到这个问题是在大学时期写编译原理大作业的时候遇到的。但是一直没有用心总结。后来在写野人和传教士,点灯问题求...

  • MySQL-13mysql主从复制问题

    大家好,本片文章看一下主从复制的问题,1. 主从复制复习2. 主从复制数据一致性3. 主从复制延迟问题4. 主从复...

  • Lab3随笔

    HashMap的复制问题: new HashMap<>(oldmap) 只会创造浅层复制,即将元素的索引转移...

  • ios长按复制问题

网友评论

      本文标题:C#list复制问题

      本文链接:https://www.haomeiwen.com/subject/hyftoxtx.html