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?
答案 0 :(得分:6)
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
需要string
和string[]
。
答案 1 :(得分: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);
}