С# string replace не работает

Я пытаюсь заменить часть строки другой строкой. Чтобы быть более точным У меня C:\Users\Desktop\Project\bin\Debug

и я пытаюсь заменить \bin\Debug на \Resources\People

Я пробовал следующее:

  • path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");

  • path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");

Ни одна из двух вышеприведенных функций не работает, поскольку строка остается неизменной и ничего не заменяется. Я делаю что-то неправильно?

Ответ 1

Проблема в том, что строки неизменяемы. Методы replace, substring и т.д. Не меняют сама строка. Они создают новую строку и заменяют ее. Таким образом, для правильного приведенного кода он должен быть

path1 = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");

Или просто

path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");

если другая переменная не нужна

ИЗМЕНИТЬ Этот ответ также является напоминанием о том, что строки неизменяемы. Любое изменение, которое вы им делаете, фактически создаст новую строку. Поэтому имейте в виду все (включая управление памятью)

Ответ 2

Метод path.Replace фактически возвращает string. Вы должны сделать следующее:

path = path.Replace("firstString", "secondString");

Ответ 3

String.Replace(string,string) returns string. 

Итак, сохраните новый путь в некоторой строковой переменной.

path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");