215

I have a string variable such as this:

string title = string.empty;

I have to display the content of whatever is passed to it inside a div within double quotes. I have written something like this:

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

How can I add the double quotes here? So that it will display like:

"How to add double quotes"
2
  • Nope doesn't work asp.net, c# vs2013 no matter how i code if you look and the page source &quot; and &#39; are always displayed. I'm using `Attributes.Add(...'
    – djack109
    Commented May 18, 2016 at 17:50
  • this would be helpful : stackoverflow.com/questions/46298985/…
    – Siavash
    Commented Sep 25, 2018 at 10:42

20 Answers 20

418

You need to escape them by doubling them (verbatim string literal):

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

Or with a normal string literal you escape them with a \:

string str = "\"How to add doublequotes\"";
8
  • and how to remove it while saving in database? I just want to remove additional double quote used for escaping and not both Commented Sep 30, 2014 at 10:35
  • 1
    @AnilPurswani - huh? You need to read up on what escaping means.
    – Oded
    Commented Sep 30, 2014 at 10:38
  • 1
    when used string str = @"""How to add doublequotes"""; it stores ""How to add doublequotes"" in database.....and while fetching it retrieves the same.... now trying to convert it....well I got the answer - str.Replace("\\\"", "\""); ...... anyways thanks for your reply .... Commented Sep 30, 2014 at 10:42
  • If you want a string to contain quotes, you escape them. That has nothing to do with storing them in the database - if you want to strip the quotes before storing in the DB, then do that.
    – Oded
    Commented Sep 30, 2014 at 10:43
  • yeah I was just trying to get the solution of stackoverflow.com/questions/26118354/… and reached to this question, which seems similar when was the data fetched from database..... Commented Sep 30, 2014 at 10:49
60

So you are essentially asking how to store doublequotes within a string variable? Two solutions for that:

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

In order to perhaps make it a bit more clear what happens:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";
23

If you have to do this often and you would like this to be cleaner in code, you might like to have an extension method for this.

This is really obvious code, but still I think it can be useful to grab it and make you save time.

  /// <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 + "\"";
    }

Then you may call foo.AddDoubleQuotes() or "foo".AddDoubleQuotes(), on every string you like.

16

If I understand your question properly, maybe you can try this:

string title = string.Format("<div>\"{0}\"</div>", "some text");
7

You can also include the double quotes into single quotes.

string str = '"' + "How to add doublequotes" + '"';
7

Another note:

    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");

The real value of hh, as passed, will be "H:\MOVIES\Battel SHIP\done-battleship-cd1.avi".

When needing double double literals, use: @"H:\MOVIES\Battel SHIP\done-battleship-cd1.avi";

Instead of: @"H:\MOVIESBattel SHIP\done-battleship-cd1.avi";

Because the first literals is for the path name and then the second literals are for the double quotation marks.

1
  • this does not seem to work, I want to call ffmpeg.exe which sees these stupid microsoft weird conventions literally \"c:\\path\\file.txt\" ffmeg.exe says illegal arguments it needs some arguments double-quotes but WITHOUT the escape \ (back-slash).
    – Meryan
    Commented Apr 1, 2023 at 19:38
5

Using string interpolation with a working example:

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

Output

<div>"Title between quotes"</div>
4

If you want to add double quotes to a string that contains dynamic values also. For the same in place of CodeId[i] and CodeName[i] you can put your dynamic values.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
3

You could use &quot; instead of ". It will be displayed correctly by the browser.

1
  • 1
    Nope doesn't work asp.net, c# vs2013 no matter how i code if you look and the page source &quot; and &#39; are always displayed. I'm using `Attributes.Add(...'
    – djack109
    Commented May 18, 2016 at 17:49
3

You can use $.

Interpolated Strings: Used to construct strings. An interpolated string looks like a template string that contains interpolated expressions. An interpolated string returns a string that replaces the interpolated expressions that it contains with their string representations. This feature is available in C# 6 and later versions.

string commentor = $"<span class=\"fa fa-plus\" aria-hidden=\"true\"> {variable}</span>";
1

Use either

&dquo;
<div>&dquo;"+ title +@"&dquo;</div>

or escape the double quote:

\"
<div>\""+ title +@"\"</div>
1

In C# you can use:

 string1 = @"Your ""Text"" Here";
 string2 = "Your \"Text\" Here";
1
string doubleQuotedPath = string.Format(@"""{0}""",path);
1

An indirect, but simple to understand alternative to add quotes at start and end of string -

char quote = '"';

string modifiedString = quote + "Original String" + quote;
1

With C# 11.0 preview you can use Raw String Literals.

Raw string literals are a new format for string literals. Raw string literals can contain arbitrary text, including whitespace, new lines, embedded quotes, and other special characters without requiring escape sequences. A raw string literal starts with at least three double-quote (""") characters. It ends with the same number of double-quote characters. Typically, a raw string literal uses three double quotes on a single line to start the string, and three double quotes on a separate line to end the string.

string str = """
    "How to add double quotes"
    """;
0

Put a backslash (\) before the double quotes. That should work.

0

"<i class=\"fa fa-check-circle\"></i>" is used with ternary operator with Eval() data binding:

Text = '<%# Eval("bqtStatus").ToString()=="Verified" ? 
       Convert.ToString("<i class=\"fa fa-check-circle\"></i>") : 
       Convert.ToString("<i class=\"fa fa-info-circle\"></i>"
0

In C#, if we use "" it means that it will indicate the following symbol is not a C# built-in symbol that will used by the developer.

So in a string we need double quotes, meaning we can put "" symbol before double quotes:

string s = "\"Hi\""
0

Now with C# 11

var string1 = """before "inside" after""";

var string2 = """ "How to add double quotes" """;
-1

If you want to add double quotes in HTML

echo "<p>Congratulations, &#8220;" . $variable . "&#8221;!</p>";

Output

Congratulations, "Mr John"!
0

Not the answer you're looking for? Browse other questions tagged or ask your own question.