我没有运气搜索显而易见的地方,以回答为什么使用File.WriteAllLines();输出StringCollection时不起作用:
static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();
在这里省略已填充infectedLog的代码.......
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);
任何人都可以告诉我我做错了什么,或者指出我会解释的方向吗?
答案 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();
}