2013-10-21 116 views
2

我有一個字符串的ArrayList和一個名爲actors的文本文件。我需要將ArrayList中的所有元素寫入.txt文件。這是我的代碼到目前爲止。如何將ArrayList寫入文本文件?

void WriteArrayList() 
    {       
     foreach (object actor in ActorArrayList) 
     { 
      File.WriteAllLines("C:\\actors.txt", actor); 
     } 
    } 
+7

你爲什麼還在使用'ArrayList'?如果你使用'List ',你的生活會更簡單。 –

+0

即使你這樣做,也不要用它的類型命名對象 - 「ActorArrayList」 –

回答

6

如果你真的必須使用ArrayList,並假設你使用.NET 3.5或更高版本,可以使用LINQ Cast方法將其轉換爲字符串的序列:

// .NET 4 and higher 
File.WriteAllLines(@"c:\actors.txt", ActorArrayList.Cast<string>()); 

對於.NET 3.5,你需要將其轉換爲一個數組,以及:

File.WriteAllLines(@"c:\actors.txt", ActorArrayList.Cast<string>().ToArray()); 

(該File.WriteAllLines超載ŧ只有在.NET 4中才引入IEnumerable<string>。)

請注意,您不需要自行遍歷列表 - File.WriteAllLines的要點在於它可以幫您實現。

如果你甚至不使用.NET 3.5,你應該循環自己 - 在foreach迴路可以隱式轉換爲你:

using (TextWriter writer = File.CreateText(@"c:\actors.txt")) 
{ 
    foreach (string actor in ActorArrayList) 
    { 
     writer.WriteLine(actor); 
    } 
} 

如果你都不可能使用List<string>代替ArrayList,你應該。泛型集合是在.NET 2中引入的,從那時起,使用非泛型集合的原因幾乎沒有。

+0

非常感謝。 – Maattt