如何将System.Collections.Specialized.StringCollection的内容写入文件?

时间:2012-02-17 13:58:18

标签: c# stringcollection

我没有运气搜索显而易见的地方,以回答为什么使用File.WriteAllLines();输出StringCollection时不起作用:

static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();

在这里省略已填充infectedLog的代码.......

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);

任何人都可以告诉我我做错了什么,或者指出我会解释的方向吗?

4 个答案:

答案 0 :(得分:8)

File.WriteAllLines期望IEnumerable<string>(或string[])而StringCollection仅实现IEnumerable(请注意缺少泛型类型)。请尝试以下方法:

using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());

答案 1 :(得分:1)

试试这个

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());

答案 2 :(得分:0)

问题是StringCollection是一个非常冷的集合。它没有实现IEnumerable&lt; T&gt;,它不是一个数组,所以WriteAllLines没有重载。

你可以这样做:

File.WriteAllLines(theFileName, infectedLog.Cast<string>());

或者,您可以切换到更现代的集合类型,例如List&lt; string&gt ;.

答案 3 :(得分:0)

        using (StreamWriter w = File.AppendText(@"testfile.txt"))
        {
            foreach (var line in sc)
            {
                w.WriteLine(line);
            }
            w.Close();
        }