4

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

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

1 回答 1

6

如果您确实必须使用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 中引入了泛型集合,从那时起就很少有理由使用非泛型集合了。

于 2013-10-21T05:49:15.377 回答