Ausgeben eines Doppelpunkts über Formatzeichenfolge in .NET

8

Kann jemand eine Formatzeichenkette in .NET konstruieren, so dass die resultierende Zeichenkette einen Doppelpunkt enthält?

Im Detail habe ich einen Wert, sagen wir 200, den ich als Verhältnis formatieren muss, d. h. "1: 200". Also konstruiere ich eine Formatzeichenkette wie diese "1: {0: N0}", die gut funktioniert. Das Problem ist, dass ich Null als "0" anzeigen lassen möchte, nicht als "1: 0", also sollte meine Formatzeichenfolge ungefähr wie "{0: 1: N0 ;; N0}" sein, aber das funktioniert natürlich nicht.

Irgendwelche Ideen? Danke!

    
user7239 24.06.2009, 13:42
quelle

5 Antworten

15
%Vor%

gibt

%Vor%

Das ; Trennzeichen in Formatzeichenfolgen bedeutet 'tue positive Zahlen wie folgt; negative Zahlen wie diese; und Null so '. Der \ entkommt dem Doppelpunkt. Das dritte \ ist nicht streng notwendig, da ein Literal Null dasselbe ist wie das numerische Standardformat für Null:)

    
AakashM 24.06.2009, 14:03
quelle
3

Sie können die Lösung von AakashM verwenden. Wenn Sie etwas leicht lesbarer haben möchten, können Sie Ihren eigenen Provider erstellen:

%Vor%

Mit diesem Provider können Sie sehr lesbare Formatzeichenfolgen erstellen:

%Vor%

Wenn Sie die zu formatierende Klasse steuern (und nicht eine primitive wie Int32), können Sie dies schöner aussehen lassen. Weitere Informationen finden Sie in diesem Artikel .

    
Jeff Moser 24.06.2009 14:03
quelle
1

Wie wäre es damit:

%Vor%     
Andrew Hare 24.06.2009 13:46
quelle
1
%Vor%     
Tim Hoolihan 24.06.2009 13:47
quelle
0

Nun, eine Möglichkeit besteht darin, sie in eine if-Anweisung zu schreiben und sie anders zu formatieren, wenn sie null ist.

    
Robert Harvey 24.06.2009 13:46
quelle

Tags und Links