Перебор и сравнение строк - C#

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

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

Доброго времени суток. Уже долгое время не могу реализовать механизм, который берет строку (первую например) с текстового документа и строку с массива, куда закатываются строки-пути к файлам и папкам в определеннной директории и сравнивает это следующим образом: 0-0, 0-1, 0-2, 0-3 и так далее. То есть у нас есть цикл 1, который отвечает за перебор строк в текстовике и цикл 2 (который в цикле 1) который перебирает на каждую строчку в текстовике все строки из массива с целью обнаружения сходства строк. Задача найти сходство и в случае не нахождения выполнить действие (удалить текущую директорию)
Листинг программы
  1. string[] intex = File.ReadAllLines(configFile); //Тянет ссылки из конфиг файла в массив
  2. string[] localFolders = Directory.GetFiles(mainFolder, "*.*", SearchOption.AllDirectories); //Тянет пути папок в массив
  3. try
  4. {
  5. for (int i = 0; i < 100; i++) //1 цикл
  6. {
  7. string b2 = intex[i].Replace(@"C:\PMTEST", @"C:\crossloader"); //Заменяет часть строки.
  8. string b4 = b2.Substring(0, intex[i].LastIndexOf('\\')); //Удаляет имя и расширение файла на конце пути (чтобы получить путь к папке)
  9. for (int i2 = 0; i2 < 100; i2++) //2 цикл
  10. {
  11. string b3 = localFolders[i2].Substring(0, localFolders[i2].LastIndexOf('\\'));
  12. if (b4 != b3) //Если строка из текстовика не равна строке из массива с путями.
  13. {
  14. Directory.Delete(b3, true); //Удалить папку
  15. goto Finish; //Прерываем цикл 2, выходим на цикл 1
  16. }
  17. }
  18. Finish:;
  19. }
  20. }
  21. catch
  22. {
  23. }
Вот как то так. Проблема то тут то там. То один цикл не считает то другой то индексы не совпадают то просто ничего не работает. Я только учусь и потратил на эту проблему уже несколько дней, помогите решить вопрос, пожалуйста.

Решение задачи: «Перебор и сравнение строк»

textual
Листинг программы
  1.  string[] intex = File.ReadAllLines(configFile); //Тянет ссылки из конфиг файла в массив
  2.             string[] localFolders = Directory.GetFiles(mainFolder, "*.*", SearchOption.AllDirectories); //Тянет пути папок в массив
  3.             string bb4 = "";
  4.             try
  5.             {
  6.  
  7.                 for (int i = 0; i < localFolders.Length; i++)
  8.                 {
  9.                     string b3 = localFolders[i].Substring(0, localFolders[i].LastIndexOf('\\'));
  10.                     for (int i2 = 0; i2 < intex.Length; i2++)
  11.                     {
  12.                         string b2 = intex[i2].Replace(@"C:\PMTEST", @"C:\crossloader");
  13.                         string b4 = b2.Substring(0, intex[i2].LastIndexOf('\\'));
  14.  
  15.                         if (b4 == b3)
  16.                         {
  17.                             goto Interpo;
  18.                         }
  19.                         bb4 = b4;
  20.                     }
  21.                     Directory.Delete(b3, true);
  22.                     Interpo:;
  23.                 }
  24.             }
  25.             catch
  26.             {
  27.             }
  28.         }

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут