用for循环编写文本

时间:2018-09-19 21:50:19

标签: c# for-loop text

for (int i = 0; i<count; i++)
{
  if (Herojai[i].Jėga == Herojai[i].Intelektas || Herojai[i].Jėga == Herojai[i].Vikrumas || Herojai[i].Intelektas == Herojai[i].Vikrumas)
  {
  string text = Herojai[i].Vardas; // (the thing I want to write)
  File.WriteAllText(@"xxx.csv", text);
  }
}

使用此代码,如果传递了if的每个循环,则文本将被新的覆盖。我不知道如何在每个循环的CSV中写入新行。

4 个答案:

答案 0 :(得分:1)

var items = Herojai.Where(i => i.Jėga == i.Intelektas || i.Jėga == i.Vikrumas || i.Intelektas == i.Vikrumas)
                   .Select(i => i.Vardas);
using (var sw = new StreamWriter(@"xxx.csv"))
{
    foreaach(var item in items)
    {
        sw.WriteLine(item);
    }
}

答案 1 :(得分:0)

在您的情况下,我将使用StringBuilder类在If条件下连接字符串值,然后将所有内容写入文件。

StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++)
{
    if (Herojai[i].Jėga == Herojai[i].Intelektas || Herojai[i].Jėga == Herojai[i].Vikrumas || Herojai[i].Intelektas == Herojai[i].Vikrumas)
    {

        sb.Append(Herojai[i].Vardas);
    }
}

File.WriteAllText(@"xxx.csv", sb.ToString());

答案 2 :(得分:0)

使用AppendAllText方法:

File.AppendAllText(@"xxx.csv", text + Environment.NewLine); 

代替:

File.WriteAllText(@"xxx.csv", text);

答案 3 :(得分:-2)

File.WriteAllText将打开一个文件,写入文本,然后关闭它。它将覆盖文件中已有的任何内容。