WinForms C#向CSV行添加其他数据

WinForms C#向CSV行添加其他数据,winforms,csv,stream,Winforms,Csv,Stream,我已经创建了两个表单,它们都必须使用csv文件。 我可以注册不同的用户,然后登录配置文件(如果存在)。 我使用StreamWriter添加信息: using (StreamWriter writer = new StreamWriter(filePath, true)) { writer.WriteLine(username + "," + password); } 然后我阅读了以下信息: using (StreamReader reader =

我已经创建了两个表单,它们都必须使用csv文件。 我可以注册不同的用户,然后登录配置文件(如果存在)。 我使用StreamWriter添加信息:

using (StreamWriter writer = new StreamWriter(filePath, true))
      {
           writer.WriteLine(username + "," + password);
      }
然后我阅读了以下信息:

using (StreamReader reader = new StreamReader(filePath))
            {
                while (!reader.EndOfStream)
                {
                    string line = reader.ReadLine();
                    string[] userData = line.Split(',');

                    usernames.Add(userData[0]);
                    passwords.Add(userData[1]);
                }
            }

我只需要知道如何添加额外的数据,这样我就可以继续我的项目的其余部分。
如果这个问题已经得到回答,我很抱歉,谢谢您抽出时间。

您不能使用
替换
来添加此信息吗?如果您有用户名和密码,只需将其替换为相同的值以及其他信息

您可以使用类对象和
列表
集合吗?您知道如何重写
[object].ToString()
?您是否可以使用其他形式的序列化,或者使用类似CSV的格式?顺便说一句,当您写入文件时:
writer.WriteLine(用户名+”,“+密码)
,您可以添加更多字段并以相同的方式写一行。我受CSV格式的限制,我使用列表,我甚至将opeFileDialog.FileName添加到列表中。我尝试了两种不同的方法,一种是上面提到的,在另一个例子中,我得到了一个超出范围的异常。问题是他们向我解释的信息很少。你知道,如果你想添加一笔钱,并且使用逗号作为十进制分隔符,你不能使用逗号作为字段分隔符拆分字符串吗?换句话说,除非用引号或类似的分隔符将字段括起来,否则不能在任何地方使用逗号。所以,也可以考虑你使用的分离器。您可以使用另一个,如管道
|
。或者准备好也解析引用的字段。可以!谢谢你的提醒。每当我在“writer.WriteLine(username”,“password”,”)中添加更多内容时,我都必须用“string[]userData=line.Split(,”)将其分隔开;我得到的索引超出了范围/界限。如何替换CSV文件的行?一些示例:
 bool isFound = false;
            for (int i = 0; i < usernames.Count; i++)
            {
                if (usernames[i] == username && passwords[i] == password)
                {
                    isFound = true;
                }
            }
    using(StreamWriter writer = new StreamWriter(filePath,true))
{
     writer.Write("the username from the register from" + "," + "the password from the register form" + openFileDialog.FileName("the location of the file/What my lector told me to use"));
}