如果你真的必須使用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中引入的,從那時起,使用非泛型集合的原因幾乎沒有。
你爲什麼還在使用'ArrayList'?如果你使用'List',你的生活會更簡單。 –
即使你這樣做,也不要用它的類型命名對象 - 「ActorArrayList」 –