Написание текста с циклом - PullRequest
       22

Написание текста с циклом

0 голосов
/ 20 сентября 2018
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 голосов
/ 20 сентября 2018
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);
    }
}
0 голосов
/ 20 сентября 2018

В вашем случае я бы использовал класс 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());
0 голосов
/ 20 сентября 2018

Используйте метод AppendAllText:

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

Вместо:

File.WriteAllText(@"xxx.csv", text);
0 голосов
/ 20 сентября 2018

File.WriteAllText откроет файл, напишет текст и закроет его.Он перезапишет все, что уже есть в файле.

...