0
votes

Environnement optimal.Newline en chaîne interpolée

Je voulais insérer plusieurs nouvelles lignes dans une chaîne, donc j'ai utilisé une chaîne interpolée comme mon choix d'un mécanisme de format qui devrait être assez rapide.

Exemple:

string mystring = $ "une ligne {environnement.newline} {environnement.newline} {environnement.newline} une autre ligne {environnement.newline} end";

maintenant cela fonctionne, mais comment puis-je mieux insérer plusieurs environnement.NewLine dans une chaîne interpolée; Par exemple, si je le voulais 15, cela devient encombrant.

Je suis au courant de string.replace (, string.format () et concaténation environnement.newline + environnement.newline + environnement.newline ainsi que la chaîne littérale @ "trucs" avec des lignes vierges Cependant, ce n'est pas la question (une alternative) mais plutôt comment insérer des multiples si mon faux exemple de

string mystring = $ "une ligne {environnement.newline (3)} une autre ligne {Environnement.Newline} Texte de fin";


0 commentaires

3 Réponses :


2
votes

Vous pouvez écrire une méthode d'assistance simple pour obtenir une chaîne répétée, puis appeler cela: xxx

et si vous ne voulez pas appeler explicitement une autre fonction, vous pouvez écrire une extension. Méthode: xxx

et ensuite la syntaxe est plus simple: xxx


4 commentaires

Noté en question, je connais à propos de cette option, merci


Réponse mise à jour.


Une des raisons est d'optimiser une application à fortement performante, créant ainsi un StringBuilder ou effectue une boucle, appelant une méthode personnalisée, etc. est / n'était pas une option considérée. Merci d'avoir posté cependant car cela pourrait correspondre à la situation de quelqu'un d'autre.


Je suis à peu près sûr que toute solution qui prend une chaîne et un compte va utiliser une boucle dans les coulisses. C'est à dire. énumérable.Repeat et stringbuilder. Insérer . Pour la performance, je suppose que vous voulez quelque chose qui se résout à la compilation. Pas sûr de celui-là.



1
votes

Peut-être pas la solution la plus élégante, mais vous pouvez appeler une méthode à partir d'une chaîne interpolée. La méthode peut renvoyer un nombre spécifié de nouvelles lignes. XXX PRE>

Appelez simplement P>

string mystring = $"one line{NewLines(3)}another line{NewLines(1)}end text";


0 commentaires

2
votes

LINQ peut faire ceci:

var fifteenNewlines = string.Concat(Enumerable.Repeat(Environment.NewLine, 15));


1 commentaires

Je vois cette réponse était déjà donné dans un double .