如何在c#列表中添加新客户?

时间:2016-12-12 18:32:54

标签: c#

我正在使用这段代码将近10个小时,但我无法找到我在哪里做错了。如果你能帮助我,你真的在​​做我的一天。问题是我正在尝试添加一个新的客户并将其保存在我的列表中,但是当我点击提交按钮时。它无效,我的列表中没有保存并继续循环其他客户。

private void Sub_Click(object sender, RoutedEventArgs e)
{
    customer newCus = new customer();
    account newAcc= new account();

    try
    {
        newCus.NAME = Nameadd.Text;
        newCus.pin = pinadd.Text;
        newAcc.PIN = pinadd.Text;
        newAcc.accountnumber = Accountnumadd.Text;
        newAcc.accounttype = 'C';
        for (int i = 0; i < acclist.Count; i++)
        {
            {
                if(newAcc.accounttype == 'C')
                {
                    newAcc.PIN = pinadd.Text;
                    newAcc.accountnumber = Accountnumadd.Text;
                    newAcc.accounttype = 'S';
                }
            }
            cuslist.add(newCus);
            acclist.add(newAcc);
            savefile();
            saveaccount();
        }
    }
    catch(Exception error)
    {
       MessageBox.Show(error.Message);
    }
}

//save to customer file
public void savefile()
{
    using (StreamWriter writer = new StreamWriter("account.txt"))
    {
        for (int i = 0; i < cuslist.Count; i++)
        {
            var info = new List<string>
            {
                acclist[i].accounttype.ToString(),
                acclist[i].PIN,
                acclist[i].accountnumber,
                acclist[i].accountbalance.ToString()
            };
            var account = String.Join(";", info);
            writer.WriteLine(account);
        }
    }
}

public void saveaccount()
{
    using (StreamWriter writer = new StreamWriter("account.txt"))
    {
        for (int i = 0; i < acclist.Count; i++)
        {
            var info = new List<string>
            {
                acclist[i].accounttype.ToString(),
                acclist[i].PIN,
                acclist[i].accountnumber,
                acclist[i].accountbalance.ToString()
            };
            var account = String.Join(";", info);
            writer.WriteLine(account);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您的&#34;存储问题&#34;功能

这是你拥有的:

public void savefile()
{
    using (StreamWriter writer = new StreamWriter("account.txt"))
    {
        for (int i = 0; i < cuslist.Count; i++)
        {
            var info = new List<string>
            {
                acclist[i].accounttype.ToString(),
                acclist[i].PIN,
                acclist[i].accountnumber,
                acclist[i].accountbalance.ToString()
            };
            var account = String.Join(";", info);
            writer.WriteLine(account);
        }
    }
}

public void saveaccount()
{
    using (StreamWriter writer = new StreamWriter("account.txt"))
    {
        for (int i = 0; i < acclist.Count; i++)
        {
            var info = new List<string>
            {
                acclist[i].accounttype.ToString(),
                acclist[i].PIN,
                acclist[i].accountnumber,
                acclist[i].accountbalance.ToString()
            };
            var account = String.Join(";", info);
            writer.WriteLine(account);
        }
    }
}

如果你看,唯一的区别是for循环。您还需要更新内部部分以从正确的集合中读取,并且还要写入正确的输出文件。

尝试以下方法:

public void savefile()
{
    using (StreamWriter writer = new StreamWriter("customer.txt"))
    {
        for (int i = 0; i < cuslist.Count; i++)
        {
            var info = new List<string>
            {
                cuslist[i].accounttype.ToString(),
                cuslist[i].PIN,
                cuslist[i].accountnumber,
                cuslist[i].accountbalance.ToString()
            };
            var customer = String.Join(";", info);
            writer.WriteLine(customer);
        }
    }
}

public void saveaccount()
{
    using (StreamWriter writer = new StreamWriter("account.txt"))
    {
        for (int i = 0; i < acclist.Count; i++)
        {
            var info = new List<string>
            {
                acclist[i].accounttype.ToString(),
                acclist[i].PIN,
                acclist[i].accountnumber,
                acclist[i].accountbalance.ToString()
            };
            var account = String.Join(";", info);
            writer.WriteLine(account);
        }
    }
}