0
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 框架的最简单方法,而无需更改太多代码并仍保留其功能?

4

2 回答 2

6

.NET 3.5重载接受. 在 .NET 4.0中有一个重载for ,这就是您的原始代码有效的原因。改用数组,你应该没问题:File.WriteAllLinesstring[]IEnumerable<string>

File.WriteAllLines(FilePath, output.ToArray());
于 2013-11-01T14:53:44.477 回答
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);
    }
}
于 2013-11-01T15:02:10.640 回答