Вот моя проблема:
string a = "example\file\path.here";
Если я хочу разделить эту строку на символ '\', это не сработает, потому что это escape-символ, поэтому я должен использовать:
string a = @"example\file\path.here";
А потом я могу разделить его и работать с ним. Проблема в том, что я получаю строковое значение пути к файлу из запроса сервера sql и сохраняю его в строковой переменной, поэтому я не могу объявить перед ним символ «@».
Например:
string a = MyQueryToStringFunction(connectionString,"SELECT Path FROM TestTable");
Print (a) напечатает формат "example \ file \ path.here".
Я видел в python, что вы можете просто использовать "% r"% stringName для преобразования из обычной строки в необработанную (что эквивалентно дословно в C#, если я не ошибаюсь).
Вопрос: Есть ли способ преобразовать обычную строковую переменную в дословную строку в C#?
вы проблема в том, что строка sql имеет / not \. не имеет ничего общего с @ или побегами или чем-то еще
покажите нам код, который не может разбить строку
Спасибо ребята. У меня все заработало. Я новичок в C# и запутался. При игре с интерактивным терминалом C# строка будет печататься с одним символом "\", но при отладке я понял, что они представлены как \\. Спасибо за вашу помощь
Возможный дубликат Почему .NET добавляет дополнительную косую черту к уже существующим косым чертам в пути?





Спасибо ребята. У меня все заработало. Я новичок в C# и запутался. При игре с интерактивным терминалом C# строка будет печататься в формате одиночных символов «\», но при отладке я понял, что они были представлены как «\\».
Вам не нужен
@ни для чего, кроме строковых литералов в вашем коде. Он не меняет «режим обработки» строки (он изначально не существует). Это изменяет способ чтения компилятором ваш код, а не способ чтения программой памяти, содержащей строку.