Как добавить двойные кавычки в строку, которая находится внутри переменной? - PullRequest
143 голосов
/ 11 октября 2010

У меня есть переменная типа:

string title = string.empty;

Мне нужно, чтобы переданная ему строка должна отображать содержимое внутри div в двойных кавычках.Итак, я написал что-то вроде:

...
...
<div>"+ title +@"</div>
...
...

Но как добавить здесь двойные кавычки?Так что он будет отображаться как:

"How to add double quotes"

Ответы [ 18 ]

275 голосов
/ 11 октября 2010

Вы должны избежать их, удвоив их (дословный строковый литерал):

string str = @"""How to add doublequotes""";

Или с обычным строковым литералом вы избегаете их с \:

string str = "\"How to add doublequotes\"";
44 голосов
/ 11 октября 2010

Итак, вы по существу спрашиваете, как хранить двойные кавычки в строковой переменной? Два решения для этого:

var string1 = @"""inside quotes""";
var string2 = "\"inside quotes\"";

Для того, чтобы немного прояснить, что происходит:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";
12 голосов
/ 11 октября 2010

Если я правильно понимаю ваш вопрос, возможно, вы можете попробовать это:

string title = string.Format("<div>\"{0}\"</div>", "some text");
11 голосов
/ 29 мая 2013

Если вам приходится делать это часто, и вы хотите, чтобы это было чище в коде, вам может потребоваться метод расширения для этого.

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

  /// <summary>
    /// Put a string between double quotes.
    /// </summary>
    /// <param name="value">Value to be put between double quotes ex: foo</param>
    /// <returns>double quoted string ex: "foo"</returns>
    public static string AddDoubleQuotes(this string value)
    {
        return "\"" + value + "\"";
    }

Тогда вы можете вызывать foo.AddDoubleQuotes () или "foo" .AddDoubleQuotes () для каждой понравившейся вам строки.

Надеюсь, что это поможет.

5 голосов
/ 14 октября 2017

Вы также можете включить двойные кавычки в одинарные кавычки.

string str = '"' + "How to add doublequotes" + '"';
5 голосов
/ 06 июля 2013

Другое примечание:

    string path = @"H:\\MOVIES\\Battel SHIP\\done-battleship-cd1.avi"; 
    string hh = string.Format("\"{0}\"", path);
    Process.Start(@"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe ", hh + " ,--play");

Реальное значение hh при передаче будет "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

Когда нужны двойные двойные литералы, используйте: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Вместо: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Поскольку первые литералы предназначены для имени пути, а вторые литералы - для двойных кавычек

2 голосов
/ 11 октября 2010

Вы можете использовать &quot; вместо ". Он будет правильно отображаться браузером.

2 голосов
/ 30 ноября 2016

Использование строковой интерполяции с рабочим примером :

var title = "Title between quotes";
var string1 = $@"<div>""{title}""</div>";  //Note the order of the $@
Console.WriteLine (string1);

Выход

<div>"Title between quotes"</div>
2 голосов
/ 14 января 2018

Вы можете использовать $.

Интерполированные строки : Используется для построения строк.Интерполированная строка выглядит как строка шаблона, содержащая интерполированные выражения.Интерполированная строка возвращает строку, которая заменяет содержащиеся в ней интерполированные выражения их строковыми представлениями.Эта функция доступна в C # 6 и более поздних версиях.

string commentor = $"<span class=\"fa fa-plus\" aria-hidden=\"true\"> {variable}</span>";
1 голос
/ 03 марта 2017
string doubleQuotedPath = string.Format(@"""{0}""",path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...