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!
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:)
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 .
Nun, eine Möglichkeit besteht darin, sie in eine if-Anweisung zu schreiben und sie anders zu formatieren, wenn sie null ist.