Удаление строк по маске - C#

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

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

        private void Remove_Click(object sender, EventArgs e)
        {
            LogFile.Items.Clear();
            string[] Filter = { "\\WinSxS\\", "\\syswow64\\", "\\servicing\\" };
            for (int i = 0; i < 2; i++)
            { 
                string FilterKey = Filter[i];
                string line;
                using (FileStream f = new FileStream("C:\\Log.txt", FileMode.Open))
                using (StreamReader sr = new StreamReader(f, Encoding.Default))
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (!line.Contains(FilterKey))
                        {
                            LogFile.Items.Add(line);
                        }
                    }
                WriteToFile(@"C:\\Log.txt", LogFile);
            }
        }
Удаляет только строки с первым значением массива (\\WinSxS''\\), остальные так и остаются, что я неправильно сделал? LogFile - листбокс(нужен для выведения информации из log.txt)

Решение задачи: «Удаление строк по маске»

textual
Листинг программы
LogFile.Items.Clear();
string[] Filter = { "\\WinSxS\\", "\\syswow64\\", "\\servicing\\" };
string line;
using (FileStream f = new FileStream("C:\\Log.txt", FileMode.Open))
{
    using (StreamReader sr = new StreamReader(f, Encoding.Default))
        while ((line = sr.ReadLine()) != null)
        {
            bool contains = false;
            for (int i = 0; i < 3; i++)
            {
                string FilterKey = Filter[i];
                if (line.Contains(FilterKey))
                    contains=true;
            }
            if (!contains)
                LogFile.Items.Add(line);
        }
     WriteToFile(@"C:\\Log.txt", LogFile);
}

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


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

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

13   голосов , оценка 3.923 из 5