添加C#列表而不是替换

时间:2018-01-11 17:25:54

标签: c#

我对列表很新,但我想用它来写一个文件。 以此为例我现在如何使用它(不完全是这样)我创建了一些代码:

private void button1_Click(object sender, EventArgs e)
{
    ContentString = Convert.ToString(Line);
    List<string> ContentList = new List<string>();
    ContentList.Add(ContentString);
    System.IO.File.WriteAllLines(@"Test.txt",ContentList);
    Line = Line + 1;
}

(我已将Line(int)和ContentString(字符串)声明为全局变量)

我现在的问题是,我只是得到一个文件,在第一行有一个数字计数。但我想要从1到X的多条线。 我想使用ContentList.Add(ContentString[Line]);,但这只适用于数组。

那么如何将字符串添加到列表的新行中?

2 个答案:

答案 0 :(得分:5)

每次单击按钮时都会创建一个新的List<string>,并在编写之前添加最新的Line值。

要编写所有以前的项目,您需要创建一次List<string>并每次添加

private List<string> ContentList = new List<string>();
private int Line = 1;

private void button1_Click(object sender, EventArgs e)
{
    ContentString = Convert.ToString(Line);       
    ContentList.Add(ContentString);
    System.IO.File.WriteAllLines(@"Test.txt",ContentList);
    Line = Line + 1;

}

注意:上面演示了修复现有代码的方法,不一定是编写此功能的正确方法

答案 1 :(得分:3)

您的问题是每次单击按钮时都会用列表覆盖文件。该列表仅包含最新的数字。

创建一个列表并为其添加数字,或者跳过所有复杂的内容并执行:

private void button1_Click(object sender, EventArgs e)
{
    System.IO.File.AppendAllText(@"Test.txt", Line.ToString() + Environment.NewLine);
    Line = Line + 1;
}