如何将ArrayList写入文本文件?

Maa*_*ttt 2 c#

我有一个字符串ArrayList和一个名为actors的文本文件.我需要将ArrayList中的所有元素写入.txt文件.到目前为止,这是我的代码.

void WriteArrayList()
    {                        
        foreach (object actor in ActorArrayList)
        {
            File.WriteAllLines("C:\\actors.txt", actor); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

如果您真的必须使用ArrayList,并假设您使用的是.NET 3.5或更高版本,则可以使用LINQ Cast方法将其转换为字符串序列:

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

对于.NET 3.5,您还需要将其转换为数组:

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

(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);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你可以使用List<string>而不是ArrayList,你应该..NET 2中引入了通用集合,从那时起,很少有理由使用非泛型集合.