将结果写入文本文件

时间:2013-11-15 20:40:06

标签: c# .net

我想在文本文件中写出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);
        }

    }
}

5 个答案:

答案 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);

}

不继续关键字会跳过循环体的其余部分吗?