1

我正在尝试从list<string>大约 350 行(13 列)用 C# 编写一个 .csv 文件。我用循环写入文件,但我的列表中只有一部分写入文件(206 行半)。这是我的代码:

        StreamWriter file = new StreamWriter(@"C:\test.csv", true);
        foreach (string s in MyListString)
        {
            Console.WriteLine(s); // Display all the data
            file.WriteLine(s);    // Write only a part of it
        }

为什么我的文件没有正确填写?有什么限制需要考虑吗?

4

3 回答 3

5

看起来你可能需要FlushClose作家。此外,大多数时候您可能希望将作者包装在一个using声明中。

幸运的是,在 dispose 时它会自动关闭编写器,刷新最后一批要写入的项目,因此它还解决了您的问题以及处置您现在完成的任何非托管项目。

尝试以下操作:

using (StreamWriter file = new StreamWriter(@"C:\test.csv", true))
{
    foreach (string s in MyListString)
    {
        Console.WriteLine(s); // Display all the data
        file.WriteLine(s);    // Write only a part of it
    }
}
于 2013-07-08T09:42:42.617 回答
2

你必须关闭你的流:

using(StreamWriter file = new StreamWriter(@"C:\test.csv", true))
{
    foreach (string s in MyListString)
    {
        Console.WriteLine(s); // Display all the data
        file.WriteLine(s);    // Write only a part of it
    }
}
于 2013-07-08T09:42:38.927 回答
0
using (StreamWriter file = new StreamWriter(@"C:\test.csv", true)){
    foreach (string s in MyListString)
    {
        Console.WriteLine(s); // Display all the data
        file.WriteLine(s);    // Write only a part of it

    }
}
于 2013-07-08T09:42:45.973 回答