var output = query.Select(x => x.Plant + "\t" + x.Animal + "\t" + blah blah blah);
string FilePath = @"C:\output.txt";
File.WriteAllLines(FilePath, output);
将目标框架从4.0切换到3.5时出现的错误是:
错误14'System.IO.File.WriteAllLines(string,string [])'的最佳重载方法匹配有一些无效的参数
切换到3.5 Framework的最简单方法是什么,而不必更改太多代码并保持其功能?
答案 0 :(得分:6)
File.WriteAllLines
的{{3}}接受string[]
。在.NET 4.0 .NET 3.5 overload中IEnumerable<string>
,这就是您的原始代码有效的原因。改为使用数组,你应该没问题:
File.WriteAllLines(FilePath, output.ToArray());
答案 1 :(得分:1)
如果您正在编写大量行,因此不想使用.ToArray()
,请使用此方法:
public static void MyWriteAllLines(string filename, IEnumerable<string> lines)
{
using (var writer = new StreamWriter(filename))
{
foreach (var line in lines)
writer.WriteLine(line);
}
}