Entwickler-Ecke

Basistechnologien - String formatting suche spezielles pattern


C# - Mo 13.04.15 13:43
Titel: String formatting suche spezielles pattern
Guten Tag,

ich suche gerade ein pattern für die String.Format() Funktion. Das Ganze soll wie folgt aussehen:

C#-Quelltext
1:
2:
3:
string a = "Test", b = "Eins", c = "Zwei";
string pattern = "{0,-10} {1,-10} {2}";
string.format(pattern, a, b, c);

Das Ergebnis hier sähe ja so aus:

Quelltext
1:
Test      Eins      Zwei                    


Ich hätte aber gerne, dass mein Ergebnis so aussieht:

Quelltext
1:
[Test]    [Eins]    Zwei                    


Wenn ich dafür das Pattern so setze:

C#-Quelltext
1:
string pattern = "{[0],-10} {[1],-10} {2}";                    

erhalte ich leider eine FormatException, weil die Klammern nicht richtig geparst werden. Wenn ich die eckigen Klammern um die geschweifetn Klammern setze, werden sie ja nicht beim padding berücksichtigt.


Ich könnte auch so vorgehen:

C#-Quelltext
1:
string.format(pattern, "[" + a + "]""[" + b + "]", c);                    

aber das ist erstens nicht sehr schön und zweitens möchte ich, dass das format komplett beeinflussbar bleibt, d.h. dass die eckigen Klammern auch komplett verschwinden könnten.

Das ganze hat den Grund, dass ich ein kleines Logging system in meiner Anwendung habe und den Anzeigestil beeinflussen will. Eine Log-Funktion sieht z.B. so aus:

C#-Quelltext
1:
Log.WriteLine(string category, string subCategory, string message)                    

Das wären auch meine drei Argumente für die string.Format()-Methode.

Gibt es ein format pattern, mit dem ich die eckigen Klammern rein bekomme?


Ralf Jansen - Mo 13.04.15 15:10

Nein.


C# - Mo 13.04.15 15:15

Schade. Trotzdem danke.