难以在列表中复制对象(客户)?

时间:2013-11-05 18:43:16

标签: c# file data-access-layer

我编写了一个程序,可以处理删除和更新,存储和搜索等文件 和所有客户 但是我的方法有问题是LoadAll 从文件中读取数据然后反序列化对象变为 但是当我想保存列表中的对象列表时会重复。 如何防止此代码中的重复?

var customerStr = File.ReadAllLines (address);

代码编写在CustomerDataAccess类DataAccess Layer中。

Project File

方法LoadAll代码的主要问题:

      public ICollection<Customer> LoadAll()
    {
        var alldata = File.ReadAllLines(address);

        List<Customer> lst = new List<Customer>();

        foreach (var s in alldata)
        {
            var objCustomer = customerSerializer.Deserialize(s);
            lst.Add(objCustomer);
        }

        return lst;
    }

1 个答案:

答案 0 :(得分:1)

在Field中定义的CustomerSerialize类,您只需使用Deserialize方法即可!每个系列都是一系列反序列化以前进入游戏的增值项目! (因为有参考类型)。

如果您将代码更改为:

     public Customer Deserialize(string str)
    {
        **Customer customer = new Customer();**
        var strCustomer = str.Split(',');

        customer.Id = int.Parse(strCustomer[0]);
        customer.FirstName = strCustomer[1];
        customer.LastName = strCustomer[2];
        customer.Age = int.Parse(strCustomer[3]);
        customer.Country = strCustomer[4];

        return customer;
    }