Сохранение данных из List в txt - C#

Узнай цену своей работы

Формулировка задачи:

многопоточный парсер html. данные парсятся регулярными выражениями и заносятся в List <string>. примерный вид List: 1 12 123 1234 ... то есть, каждая новая строка отличается новым добавленным последним элементом. данные из List, периодически сохраняются в txt. реализовано так:
   lock (vfail)
                if (vfail.Count > 0)
                {
                    var sw = new StreamWriter("ALL.txt", true);
                    foreach (var akk in vfail)
                    sw.Write(akk);
                    sw.Close();
                    vfail.Clear();
                }
проблема в том, что в txt записываются все строки из List. отсюда получается множество дублей. т.к. данные в txt так и есть как List:
1
12
123
1234
...
пробовал записывать последнюю строку из List - var x = vfail[vfail.Count - 1]; не помогает. почему-то все равно записывается с дублями. возможно из-за многопоточности, но почему тогда lock не срабатывает. в общем, как решить данную проблему? P.S. периодическая чистка List производится - vfail.Clear();

Решение задачи: «Сохранение данных из List в txt»

textual
Листинг программы
// good парсим регуляркой
result = string.Empty;
foreach (Match m in good)
                    {
                        result = result + m.Value + "\r\n";
                        lock (vfail)
                        vfail.Add(result);
                    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5
Похожие ответы