如果您确实必须使用ArrayList
,并且假设您使用的是 .NET 3.5 或更高版本,则可以使用 LINQCast
方法将其转换为字符串序列:
// .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
重载IEnumerable<string>
仅在 .NET 4 中引入。)
请注意您不需要自己遍历列表 - 重点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 中引入了泛型集合,从那时起就很少有理由使用非泛型集合了。