Reputation: 2539
I want to do something like
String.Format("Completed {0:9} of ",0) + xlsx.totalCount.ToString();
except instead of hardcoding a 9 I want the alignment to be whatever xlsx.totalCount is. Any thoughts?
Upvotes: 5
Views: 3662
Reputation: 743
I'd assumed that he wanted a count of 9s depending on the value of xlsx.totalCount.
StringBuilder sb = new StringBuilder(); sb.Append( '9', xlsx.totalCount ); String.Format( "Completed {0:" + sb.ToString() + "} of ",0) + xlsx.totalCount.ToString();
Again, there feels like there should be an easier way of building a chain of 9s, but not in 3 minutes of thinking, apparently.
Upvotes: 0
Reputation: 3017
The string doesn't have to be a compile time constant, you can build the string during runtime (using a StringBuilder, operator+ or even a nested String.Format). This, for instance will produce the needed string with xlsx.totalCount replacing the "9":
String.Format("Completed {0:" + xlsx.totalCount + "} of "...
Upvotes: 3
Reputation: 793
Try it like this:
string formatString = "{0:" + xlsx.totalCount.ToString() + "}";
String.Format("Completed " + formatString + " of ", 0) + xlsx.totalCount.ToString();
Upvotes: 4