我有一个字符串ArrayList和一个名为actors的文本文件。我需要将ArrayList中的所有元素写入.txt文件。到目前为止,这是我的代码。
void WriteArrayList()
{
foreach (object actor in ActorArrayList)
{
File.WriteAllLines("C:\\actors.txt", actor);
}
}
答案 0 :(得分: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
重载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中引入了通用集合,从那时起就没有理由使用非泛型集合。