C#字符串格式化和填充

hom*_*347 4 c# string string-formatting

看起来这应该是直截了当的,但我无法做到正确.我查看了http://idunno.org/archive/2004/14/01/122.aspx以供参考.

示例:我想打印一个double值表,每个double输出具有3个十进制精度,并占用10个空格(左对齐).从概念上讲,我尝试过这样的东西,但它只适用于精确的OR填充,而不是两者:

foreach(line in lines)
{
    foreach (double val in line)
    {
         Console.Write("{0:0.000,-10}", val);
    }

    Console.WriteLine()
}
Run Code Online (Sandbox Code Playgroud)

更新:我可以在非常简单的场景中使用padleft/padright,如果我有更复杂的输出它变得不是很简洁.是否有类似于sprintf的东西?

Pao*_*sco 8

尝试

double d = 3.14;
Console.WriteLine("{0,10:0.000}", d);
Run Code Online (Sandbox Code Playgroud)

PS:看看这篇文章作为字符串格式的入门.另外,string.Format应该允许你做sprintf所做的一切 - 实际上更多......你还想做什么?