1
var output = DataList.Select(x => x.blah blah blah); 
string outputFilePath = @"C:\output.txt";
File.AppendAllLines(outputFilePath, output);

我上面的 .NET 4 代码被放入了一个 for/next 循环,该循环迭代了几次,所以附加是必要的(而不是覆盖/重写)。现在,有人告诉我必须改用 .NET 3.5,而 AppendAllLines 吐出错误“System.IO.File”不包含 AppendAllLines 的定义。

有谁知道不需要我过于彻底地更改现有代码并使用 .NET 3.5 的修复程序?

4

2 回答 2

6

File.AppendAllText可用。

var output = string.Join(Environment.NewLine, DataList.Select(x => x.blah blah blah).ToArray());
string outputFilePath = @"C:\output.txt";
File.AppendAllText(outputFilePath, output);

应该工作,string.Join需要 astring和 a string[]

于 2013-10-31T20:07:10.873 回答
3

框架中没有任何东西可以做到这一点,使用正确的流,但你可以很容易地编写自己的方法:

public static void AppendAllLines(string path, IEnumerable<string> lines)
{
    using (var writer = new StreamWriter(path, true))
        foreach (var line in lines)
            writer.WriteLine(line);
}
于 2013-10-31T20:21:54.257 回答