Comment ajouter des guillemets doubles à une chaîne qui se trouve à l'intérieur d'une variable?

168

J'ai une variable comme:

string title = string.empty;

Mon besoin est que quelle que soit la chaîne qui lui est passée, je dois afficher le contenu à l'intérieur d'un div avec des guillemets doubles. J'ai donc écrit quelque chose comme:

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

Mais comment ajouter les guillemets ici? Pour qu'il s'affiche comme:

"How to add double quotes"
ANP
la source
Nope ne fonctionne pas asp.net, c # vs2013 peu importe comment je code si vous regardez et la source de la page & quot; et & # 39; sont toujours affichés. J'utilise `Attributes.Add (... '
djack109
cela serait utile: stackoverflow.com/questions/46298985/…
Siavash

Réponses:

331

Vous devez les échapper en les doublant (littéral de chaîne verbatim):

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

Ou avec un littéral de chaîne normal, vous les échappez avec un \:

string str = "\"How to add doublequotes\"";
Oded
la source
et comment le supprimer lors de l'enregistrement dans la base de données? Je veux juste supprimer les guillemets doubles supplémentaires utilisés pour s'échapper et non les deux
Anil Purswani
1
@AnilPurswani - hein? Vous devez lire ce que signifie échapper.
Oded le
lorsqu'il est utilisé string str = @ "" "Comment ajouter des guillemets doubles" ""; il stocke "" Comment ajouter des guillemets doubles "" dans la base de données ..... et tout en le récupérant, il récupère la même chose .... essayant maintenant de le convertir .... eh bien j'ai eu la réponse - str.Replace ("\\ \ "", "\" "); ...... en tout cas merci pour votre réponse ....
Anil Purswani
Si vous voulez qu'une chaîne contienne des guillemets, vous les échappez. Cela n'a rien à voir avec leur stockage dans la base de données - si vous voulez supprimer les guillemets avant de les stocker dans la base de données, faites-le.
Oded le
oui, j'essayais juste d'obtenir la solution de stackoverflow.com/questions/26118354/… et j'ai atteint cette question, qui semble similaire quand les données ont-elles été extraites de la base de données .....
Anil Purswani
46

Vous vous demandez donc essentiellement comment stocker les guillemets doubles dans une variable chaîne? Deux solutions pour cela:

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

Afin de clarifier peut-être ce qui se passe:

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

Si je comprends bien votre question, vous pouvez peut-être essayer ceci:

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

Si vous devez le faire souvent et que vous souhaitez que le code soit plus clair, vous voudrez peut-être avoir une méthode d'extension pour cela.

C'est un code vraiment évident, mais je pense quand même qu'il peut être utile de saisir et de vous faire gagner du temps.

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

Ensuite, vous pouvez appeler foo.AddDoubleQuotes () ou "foo" .AddDoubleQuotes (), sur chaque chaîne de votre choix.

J'espère que cette aide.

codée
la source
7

Vous pouvez également inclure les guillemets doubles dans des guillemets simples.

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

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

La valeur réelle de hh telle que passée sera "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi".

Lorsque vous avez besoin de doubles littéraux doubles, utilisez: @ "H: \ MOVIES \ Battel SHIP \ done-battleship-cd1.avi"; Au lieu de: @ "H: \ MOVIESBattel SHIP \ done-battleship-cd1.avi"; Parce que le premier littéral est pour le nom du chemin et les seconds littéraux sont pour les guillemets doubles

DR.
la source
2

Vous pouvez utiliser à la &quot;place de ". Il sera affiché correctement par le navigateur.

Jens
la source
Nope ne fonctionne pas asp.net, c # vs2013 peu importe comment je code si vous regardez et la source de la page & quot; et & # 39; sont toujours affichés. J'utilise `Attributes.Add (... '
djack109
2

Utilisation de l' interpolation de chaîne avec un exemple de travail :

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

Production

<div>"Title between quotes"</div>
WorkSmarter
la source
2

Vous pouvez utiliser $.

Chaînes interpolées : utilisées pour construire des chaînes. Une chaîne interpolée ressemble à une chaîne de modèle contenant des expressions interpolées. Une chaîne interpolée renvoie une chaîne qui remplace les expressions interpolées qu'elle contient par leurs représentations sous forme de chaîne. Cette fonctionnalité est disponible en C # 6 et versions ultérieures.

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

Utilisez soit

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

ou échappez aux guillemets doubles:

\ "
<div> \ "" + titre + @ "\" </div>
Graham
la source
1

En C #, vous pouvez utiliser:

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

Mettez une barre oblique inverse (\) avant les guillemets. Cela devrait fonctionner.

Belinda
la source
0

en C # si nous utilisons "\", cela signifie que le symbole suivant n'est pas le symbole c # inbuild qui sera utilisé par le développeur. donc dans la chaîne, nous avons besoin de guillemets doubles, ce qui signifie que nous pouvons mettre le symbole "\" avant les guillemets doubles.string s = "\"Hi\""

Malathi Mals
la source
0

"<i class=\"fa fa-check-circle\"></i>"est utilisé avec l'opérateur ternaire avec Eval()liaison de données:

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

Une alternative indirecte, mais simple à comprendre pour ajouter des guillemets au début et à la fin de la chaîne -

char quote = '"';

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

Si vous souhaitez ajouter des guillemets doubles en HTML

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

Si vous souhaitez ajouter des guillemets doubles à une chaîne qui contient également des valeurs dynamiques. Pour la même chose à la place de CodeId [i] et CodeName [i], vous pouvez mettre vos valeurs dynamiques.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Ramya Prakash Déroute
la source