Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将结果写入文本文件_C#_.net - Fatal编程技术网

C# 将结果写入文本文件

C# 将结果写入文本文件,c#,.net,C#,.net,我想把var项的结果写在文本文件中。 我使用File.writealText,路径是@“C:\Users\TBM\Desktop\test.txt” 但我只得到item的最后一个值,即EDC static void Main(string[] args) { var alphabet = "ABCDE"; var q = alphabet.Select(x => x.ToString()); int size = 3; for (int i = 0; i &

我想把var项的结果写在文本文件中。 我使用File.writealText,路径是@“C:\Users\TBM\Desktop\test.txt” 但我只得到item的最后一个值,即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);
        }

    }
}
static void Main(字符串[]args)
{
var alphabet=“ABCDE”;
var q=alphabet.Select(x=>x.ToString());
int size=3;
对于(int i=0;ialphabet,(x,y)=>x+y);
}
foreach(q中的var项目)
{
如果((项目[0]==项目[1])| |(项目[1]==项目[2])| |(项目[0]==项目[2]))
{
继续;
writealText(@“C:\Users\TBM\Desktop\test.txt”,item);
}
}
}

文件。WriteAllText()
打开文件,将文本写入其中,然后关闭文件。您需要逐行查找编写文本文件的众多示例中的一个。

writealText
使用该项覆盖文本文件的全部内容。最小的改变是将代码改为使用
AppendAllText
(如果您愿意的话,在循环之前清除文件),但更为自动化的解决方案是重构代码以使用
writeAllines

File.WriteAllLines(path, q);

这将简单地将每个项目写在自己的行上。

当您循环浏览某些内容时,
StreamWriter
是写入文本文件的最简单方法:

using (var sw = new StreamWriter(filename))
{
    foreach (something in somethingElse)
    {
        string line = "compute this line somehow";
        sw.WriteLine(line);
    }
}
这就是您所需要的—您的文件将被创建、写入、保存和关闭。

您的文件。在您的示例中,writealText()调用在continue之后—它是如何被调用的?它需要在if括号之外。

是否应该

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

}

是否继续关键字跳过循环体的其余部分?

这也是避免使用太多内存的最佳方法-无论何时执行
File.writealText
File.writealLines
或任何这些操作,您都需要将内存中的全部内容放在字符串或字符串数组中。使用
StreamWriter
,就像.NET中其他基于流的IO一样,您可以一次编写一点,而不会占用内存,因此这确实是处理大型文件的唯一方法。