Замена определенного символа на string.replace()

Я хотел бы заменить все случаи / в \, я использовал этот фрагмент:

_url =  _url.Replace("/",@"\");

но это заменяет / в \\,

Почему это происходит? Как я могу изменить фрагмент, чтобы получить хороший результат

2 ответа

Решение

Ваша строка, скорее всего, уже содержит одну обратную косую черту!

I suspect your string already actually only contains a single backslash, 
but you're looking at it in the debugger which is escaping it for you into
a form which would be valid as a regular string literal in C#.

процитировал Джона Скита из: замените "\\" на "\" в строке в C#

Я собираюсь догадаться, что вы пытались проверить правильность работы в отладчике. Подсказки отладчика в Visual Studio экранируют символы обратной косой черты, так что если вы видите \\ во всплывающей подсказке строка содержит только 1 обратную косую черту. Щелкните значок увеличительного стекла в конце всплывающей подсказки в отладчике, чтобы открыть диалоговое окно, содержащее неэкранированный текст.

Редактировать: Это относится и к окнам часов, включая часть с увеличительным стеклом в конце.

Другие вопросы по тегам