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中写入新行。
答案 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将打开一个文件,写入文本,然后关闭它。它将覆盖文件中已有的任何内容。