我想在文本文件中写出var项的结果。 我使用File.WriteAllText,路径是@“C:\ Users \ TBM \ Desktop \ test.txt” 但我只得到项目的最后一个值,即EDC
static void Main(string[] args)
{
var alphabet = "ABCDE";
var q = alphabet.Select(x => x.ToString());
int size = 3;
for (int i = 0; i < size - 1; i++)
{
q = q.SelectMany(x => alphabet, (x, y) => x + y);
}
foreach (var item in q)
{
if ((item[0] == item[1]) || (item[1] == item[2]) || (item[0] == item[2]))
{
continue;
File.WriteAllText(@"C:\Users\TBM\Desktop\test.txt", item);
}
}
}
答案 0 :(得分:0)
File.WriteAllText()
打开文件,将文本写入文件,然后关闭文件。您需要查找逐行编写文本文件的众多示例之一。
答案 1 :(得分:0)
WriteAllText
使用该项目覆盖文本文件的全部内容。最小的变化是将代码更改为使用AppendAllText
代替(如果这是你想要的话,在循环之前清除文件),但更加惯用的解决方案是重构代码以使用WriteAllLines
:< / p>
File.WriteAllLines(path, q);
这将简单地将每个项目写在自己的行上。
答案 2 :(得分:0)
StreamWriter
是在循环播放文章时写入文本文件的最简单方法:
using (var sw = new StreamWriter(filename))
{
foreach (something in somethingElse)
{
string line = "compute this line somehow";
sw.WriteLine(line);
}
}
这就是您所需要的 - 您的文件将被创建,编写,保存和关闭。
答案 3 :(得分:0)
您的示例中的File.WriteAllText()调用是在继续之后 - 如何调用它?它需要在你的if括号之外。
答案 4 :(得分:0)
应该是
foreach (var item in q)
{
if ((item[0] == item[1]) || (item[1] == item[2]) || (item[0] == item[2]))
{
continue;
}
File.WriteAllText(@"C:\Users\TBM\Desktop\test.txt", item);
}
不继续关键字会跳过循环体的其余部分吗?