Я пытаюсь удалить строку текста из текстового файла, используя StreamReader для импорта файла, добавления содержимого в список, удаления нужной строки, повторной записи в текстовый файл без строки. Однако любые попытки запустить программу, похоже, приводят либо к бесконечным циклам, либо к удалению всех строк из файла, либо к тому, что один файл не очищается совсем. Вот код, который у меня есть:
{
string read = "";
if (devOutput.Count() != 0) //Error Handling
{
using (StreamReader reader = new StreamReader("Devices.txt", true))
{
while ((read = reader.ReadLine()) != null)
{
deleteDevice.Clear();
deleteDevice.Add(read);
}
}
}
else
MessageBox.Show("2: No Devices Saved!");
using (StreamWriter writer = new StreamWriter("Devices.txt"))
{
do
{
foreach (string st in deleteDevice)
{
string split = st.ToString();
deleteDevice = split.Split(',').ToList();
}
if (deleteDevice.Contains(deviceList.SelectedItem.ToString()))
{
deleteDevice.Remove(i.ToString());
i = i + 1;
deleteDevice.Remove(i.ToString());
i = i + 1;
deleteDevice.Remove(i.ToString());
i = i + 1;
deleteDevice.Remove(i.ToString());
i = i + 1;
deleteDevice.Remove(i.ToString());
i = i + 4; //Progress to next device
}
}
while (i < deleteDevice.Count);
if (deleteDevice.Count != 0) //Error Handling
{
foreach (string st in deleteDevice)
{
writer.WriteLine(st);
}
}
}
deviceList.Items.Remove(deviceList.SelectedItem);
}
Если есть лучший способ сделать это, скажем, используя массив вместо списка, что было бы лучшим способом реализовать такую вещь. Любая помощь приветствуется, ура