string.Replace (или другая модификация строки) не работает

Для следующего кода я не могу получить string.Replace для работы:

 someTestString.Replace(someID.ToString(), sessionID); 

когда я отлаживаю и проверяю параметры, у них есть значения, которые я ожидаю, т.е. someID.ToString() получил «1087163075», а sessionID имеет «108716308», а someTestString содержит «1087163075».

Я понятия не имею, почему это не сработает, измените someTestString

Полный образец:

 string someTestString = "108716305-1.jpg" someTestString.Replace("108716305", "NewId42"); 

результатом (в someTestString ) должно быть следующее:

 "NewId42-1.jpg" 

но он не меняется. Строка для someTestString остается неизменной после удара моего кода.

Строки неизменяемы. Результат string.Replace – это новая строка с замененным значением.

Вы можете либо сохранить результат в новой переменной:

 var newString = someTestString.Replace(someID.ToString(), sessionID); 

или просто переназначить исходную переменную, если вы просто хотите наблюдать за «строковым обновлением»:

 someTestString = someTestString.Replace(someID.ToString(), sessionID); 

Обратите внимание, что это относится ко всем другим string функциям, таким как Remove , trim и substring options – все они возвращают новую строку, поскольку исходная строка не может быть изменена.

 someTestString = someTestString.Replace(someID.ToString(), sessionID); 

это должно сработать для вас

строки неизменяемы, заменитель вернет новую строку, поэтому вам нужно что-то вроде

 string newstring = someTestString.Replace(someID.ToString(), sessionID); 

Вы можете добиться желаемого эффекта, используя

 someTestString = someTestString.Replace(someID.ToString(), sessionID); 

Как сказал womp, строки неизменяемы, что означает, что их значения не могут быть изменены без изменения всего объекта.

  • Операторы перегрузки как функция-член или функция не-член (друга)?
  • rand () генерирует такое же число - даже с srand (time (NULL)) в моем главном!
  • Как реализовать memmove в стандартном C без промежуточной копии?
  • Используется для нескольких уровней разметки указателя?
  • Лучший способ в .NET управлять очередью задач на отдельном (одном) streamе
  • В чем разница между полем и свойством?
  • Возможные ошибки использования этой (основанной на расширении) стенографии
  • Отсутствие вывода консоли при использовании AllocConsole и целевой архитектуры x86
  • Альтернативное имя свойства при десериализации
  • Строковые литералы
  • Как преобразовать NSNumber в NSString
  • Давайте будем гением компьютера.