Не удаляется часть строки (string) в C#

126
21 апреля 2019, 21:40

Когда я копирую текст из TextBox(multiline) в строку, а потом пытаюсь из нее что-то удалить - со строкой НИЧЕГО не происходит. Вот часть кода:

public Find(string Ingr)
{
  InitializeComponent();
  string ingr = Ingr; 
  // Я понимаю, что и без этой строчки можно обойтись, но чтобы отбросить все сомнения, что проблема не в этом... 
  int firstIndex = 0;
  while (firstIndex < ingr.Length)
  {
    int lastIndex = ingr.IndexOf("\r");
    if (lastIndex < 0)
    {
      lastIndex = ingr.Length;
    }
    string subIngr = ingr.Substring(firstIndex, lastIndex);
    firstIndex = subIngr.Length;
    MessageBox.Show("" + subIngr);
    ingr.Remove(0, lastIndex);//Не работает ни эта команда
    //ingr.Replace(subIngr , ""); Ни эта
  }   
}

Допустим, пользователь вписал В TextBox:

" Мука

Сахар

Молоко

Соль "

Что делает моя программа...

Она берет все это дело, и присваивает в "string ingr".

В 'ingr' появляется такая строка: "Мука\r\nСахар\r\nМолоко\r\nСоль".

После этого идет цикл 'while', и вот тут начинаются проблемы.

Сначала выводится MessageBox с надписью "Мука". Пока что правильно.

Наступает время команде "ingr.Remove(0, lastIndex);" или "ingr.Replace(subIngr , "");", но ничего не удаляется.

Цикл повторяется второй раз, теперь в MessageBox выводится "Са". И все, просто "Са". Ничего снова не удаляется, снова выводится "Са", и цикл бесконечен.

Я не знаю в чем проблема, просидел уже больше часа, перепробовал огромное количество разных вариантов, ничего не помогает...

Я только учу C#

Answer 1
ingr = ingr.Remove(0, lastIndex);  // работает и эта команда
ingr = ingr.Replace(subIngr , ""); // и эта
READ ALSO
Как добавить DataGrid в ячейку?

Как добавить DataGrid в ячейку?

На макете имеется DataGrid, у которого один столбец и одна ячейкаКак добавить ещё один (вложенный выходит) DataGrid в эту ячейку? Что-то такое:

238
C# Контроль времени выполнения Task и его отмена

C# Контроль времени выполнения Task и его отмена

получаю данный от Tcp сервера, если запрос длится более 1 сек, то завершаем Task ожидания получения ответа и выкидываем TimeoutException("

148
В C# windows form преобразование типа string в double и наоборот

В C# windows form преобразование типа string в double и наоборот

Как сделать что бы из textbox значения перевести в тип double и что бы читалась в числе и точка и запятая?И как вывести в label тип double?

179
Почему не получается десериализовать Json?

Почему не получается десериализовать Json?

Зашел в тупик с десериализацией Json, подскажите, почему?

143