1 2 3 4 | var s1 = string.Format("{0,-10}", 8); var s2 = string.Format("{0,10}", 8); var s3 = string.Format("{0,20:yyyy-MM-dd}", DateTime.Today); var s4 = string.Format("4G 内存便宜了{0,12:C2},我打算买{1,4}条", 145, 2); |
大括号中,索引后 分号前,有一个逗号和一个整数(减号表示负数)。
string.Format("{0,-10}", 8) 等同于 string.Format("{0}", 8).PadRight(10);
string.Format("{0,10}", 8) 等同于 string.Format("{0}", 8).PadLeft(10)。
String.Format 方法 format 参数由零或多个文本序列与零或多个索引占位符混合组成,其中索引占位符称为格式项,对应于与此方法的参数列表中的对象。 格式设置过程将每个格式项替换为相应对象值的字符串表示形式。
格式项的语法如下:
{index[,length][:formatString]}
优点:
,length 其实把 String.PadLeft 和 String.PadRight 的功能融合在的 String.Format 方法中,简化了代码的编写。
如果没有这种格式,代码写起来麻烦多了:
1 2 3 | var s5 = string.Format("4G 内存便宜了{0},我打算买{1}条", 145.ToString("C2").PadLeft(12), 2.ToString().PadLeft(4)); |
缺点:
看起来不直观,复杂,如文首代码中的 “我打算买{1,4}条”。
实际使用少,没用过的看了很纳闷。
-------------------
转载:http://www.cnblogs.com/ldp615/archive/2011/08/03/string-format-with-length.html