Wie füge ich einer Zeichenfolge innerhalb einer Variablen doppelte Anführungszeichen hinzu?

166

Ich habe Variable wie:

string title = string.empty;

Ich brauche, dass jeder Inhalt, der an ihn übergeben wird, den Inhalt in einem div in doppelten Anführungszeichen anzeigt. Also habe ich so etwas geschrieben wie:

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

Aber wie fügt man hier die doppelten Anführungszeichen hinzu? Damit es wie folgt angezeigt wird:

"How to add double quotes"
ANP
quelle
Nein, funktioniert nicht asp.net, c # vs2013, egal wie ich codiere, wenn Sie aussehen und die Seitenquelle & quot; und & # 39; werden immer angezeigt. Ich benutze `Attributes.Add (... '
djack109
Dies wäre hilfreich: stackoverflow.com/questions/46298985/…
Siavash

Antworten:

330

Sie müssen ihnen entkommen, indem Sie sie verdoppeln (wörtliches Zeichenfolgenliteral):

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

Oder mit einem normalen String-Literal entkommen Sie ihnen mit einem \:

string str = "\"How to add doublequotes\"";
Oded
quelle
und wie man es beim Speichern in der Datenbank entfernt? Ich möchte nur zusätzliches doppeltes Anführungszeichen entfernen, das für die Flucht verwendet wurde, und nicht beides
Anil Purswani,
1
@ AnilPurswani - nicht wahr? Sie müssen nachlesen, was Flucht bedeutet.
Oded
bei Verwendung string str = @ "" "Hinzufügen von Doppelzitaten" ""; es speichert "" Wie man doppelte Anführungszeichen hinzufügt "" in der Datenbank ..... und beim Abrufen wird dasselbe abgerufen .... jetzt wird versucht, es zu konvertieren .... nun, ich habe die Antwort - str.Replace ("\\ "", ""); ...... trotzdem danke für deine Antwort ....
Anil Purswani
Wenn eine Zeichenfolge Anführungszeichen enthalten soll, werden sie maskiert. Das hat nichts mit dem Speichern in der Datenbank zu tun. Wenn Sie die Anführungszeichen vor dem Speichern in der Datenbank entfernen möchten, tun Sie dies.
Oded
Ja, ich habe nur versucht, die Lösung von stackoverflow.com/questions/26118354/… zu finden, und bin zu dieser Frage gelangt, die ähnlich zu sein scheint, als die Daten aus der Datenbank abgerufen wurden .....
Anil Purswani
46

Sie fragen sich also im Wesentlichen, wie doppelte Anführungszeichen in einer Zeichenfolgenvariablen gespeichert werden sollen? Zwei Lösungen dafür:

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

Um vielleicht etwas klarer zu machen, was passiert:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";
Fredrik Mörk
quelle
14

Wenn Sie dies häufig tun müssen und möchten, dass der Code sauberer wird, möchten Sie möglicherweise eine Erweiterungsmethode dafür haben.

Dies ist wirklich offensichtlicher Code, aber ich denke trotzdem, dass es nützlich sein kann, Zeit zu sparen.

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

Dann können Sie foo.AddDoubleQuotes () oder "foo" .AddDoubleQuotes () für jede Zeichenfolge aufrufen, die Sie mögen.

Ich hoffe das hilft.

codea
quelle
13

Wenn ich Ihre Frage richtig verstehe, können Sie vielleicht Folgendes versuchen:

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

Sie können die doppelten Anführungszeichen auch in einfache Anführungszeichen setzen.

string str = '"' + "How to add doublequotes" + '"';
Yannick Turbang
quelle
6

Noch ein Hinweis:

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

Der tatsächliche Wert von hh, wie er übergeben wurde, ist "H: \ MOVIES \ Battel SHIP \ done-Schlachtschiff-cd1.avi".

Wenn Sie doppelte Doppelliterale benötigen, verwenden Sie: @ "H: \ MOVIES \ Battel SHIP \ done-Schlachtschiff-cd1.avi"; Anstelle von: @ "H: \ MOVIESBattel SHIP \ done-Schlachtschiff-cd1.avi"; Weil die ersten Literale für den Pfadnamen und die zweiten Literale für die doppelten Anführungszeichen stehen

DR.
quelle
2

Sie könnten &quot;anstelle von verwenden ". Es wird vom Browser korrekt angezeigt.

Jens
quelle
Nein, funktioniert nicht asp.net, c # vs2013, egal wie ich codiere, wenn Sie aussehen und die Seitenquelle & quot; und & # 39; werden immer angezeigt. Ich benutze `Attributes.Add (... '
djack109
2

Verwenden der Zeichenfolgeninterpolation mit einem Arbeitsbeispiel :

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

Ausgabe

<div>"Title between quotes"</div>
Arbeite klüger
quelle
2

Sie können verwenden $.

Interpolierte Zeichenfolgen : Zum Erstellen von Zeichenfolgen. Eine interpolierte Zeichenfolge sieht aus wie eine Vorlagenzeichenfolge, die interpolierte Ausdrücke enthält. Eine interpolierte Zeichenfolge gibt eine Zeichenfolge zurück, die die darin enthaltenen interpolierten Ausdrücke durch ihre Zeichenfolgendarstellungen ersetzt. Diese Funktion ist in C # 6 und späteren Versionen verfügbar.

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

Benutze das eine oder das andere

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

oder entkommen Sie dem doppelten Anführungszeichen:

""
<div> "+ title + @" "</ div>
Graham
quelle
1

In C # können Sie verwenden:

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

Setzen Sie einen Backslash (\) vor die doppelten Anführungszeichen. Das sollte funktionieren.

Belinda
quelle
0

Wenn wir in C # "\" verwenden, bedeutet dies, dass das folgende Symbol kein eingebautes C # -Symbol ist, das vom Entwickler verwendet wird. In Zeichenfolgen benötigen wir doppelte Anführungszeichen, dh wir können das Symbol "\" vor doppelte Anführungszeichen setzen.string s = "\"Hi\""

Malathi Mals
quelle
0

"<i class=\"fa fa-check-circle\"></i>"wird mit ternärem Operator mit Eval()Datenbindung verwendet:

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

Eine indirekte, aber einfach zu verstehende Alternative zum Hinzufügen von Anführungszeichen am Anfang und Ende der Zeichenfolge -

char quote = '"';

string modifiedString = quote + "Original String" + quote;
Abhishek Poojary
quelle
0

Wenn Sie doppelte Anführungszeichen in HTML hinzufügen möchten

echo "<p>Congratulations,  &#8220; ". $variable ." &#8221;!</p>";
output -> Congratulations, "Mr Jonh "!
Yogesh Sarvaiya
quelle
0

Wenn Sie einer Zeichenfolge, die auch dynamische Werte enthält, doppelte Anführungszeichen hinzufügen möchten. Für dasselbe können Sie anstelle von CodeId [i] und CodeName [i] Ihre dynamischen Werte eingeben.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Ramya Prakash Rout
quelle