2013-10-31 95 views
0
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的定義。是否有4.0的AppendAllLines的.NET 3.5等價物?

有誰知道一個修正,不需要我太劇烈地改變我的現有代碼,並使用.NET 3.5?

+0

寫你自己的方法做同樣的AppendAllLines,並且具有相同的簽名。 – 2013-10-31 20:09:33

回答

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); 
} 
5

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需要stringstring[]

+1

我比''\ r \ n「'更喜歡'Environment.NewLine' – spender

+1

此方法不會在將數據寫入文件之前對數據進行流式處理;它被迫將整個文件的數據存入內存 – Servy

相關問題