我正在尝试使用Format()方法格式化字符串 不幸的是,我用foreach循环得到了这个结果:
代码:
output += String.Format("{0,17} {1,48}\n\n", "Name", "Description " );
Console.WriteLine(output);
string outputloop;
foreach (IMetricContract contract in metrics)
{
outputloop = String.Format("{0,17} {1,48}\n", contract.Name, contract.Description);
Console.WriteLine(outputloop);
}
您可以看到元素处于不同的位置,但我已经定义了相同的值。 有人知道解决方案吗?
编辑:
outputloop = String.Format("{0,-17} {1,-48}\n", contract.Name,
我也尝试过这个位置的负值,但后来我得到了这个
结果应如下所示(使用Imageeditor编辑)
答案 0 :(得分:3)
如果我理解正确,我认为你想要负数,如:
outputloop = String.Format("{0,-17} {1,-48}\n", contract.Name, contract.Description);
这使它与左侧(而不是右侧)对齐。
当您使用正数或负数时,当实际字符数超过48
的绝对值时(在我们的示例中)," extra"字符超出"字段"在右边。
答案 1 :(得分:0)
所以最后我发现了如何解决这个任务,而不是格式函数,我在c#中使用了padright函数作为字符串。 这两个网站给了我帮助:
http://www.dotnetperls.com/padright
https://msdn.microsoft.com/en-us/library/66f6d830(v=vs.110).aspx
这是我的代码:
foreach (IMetricContract contract in metrics)
{
name = contract.Name;
desc = contract.Description;
Console.Write("".PadRight(13,'#')+name.PadRight(41,'i'));
Console.WriteLine(desc + "\n");
}