C#字符串格式不';不要排队

C#字符串格式不';不要排队,c#,formatting,C#,Formatting,我正试图构建一系列排列整齐的字符串,但是格式没有按照我预期的方式工作 如果我有: String.Format("{0,-25}{1,-7}{2,-18}{3,-8}{4,-15}{5,-3}{6,-10}", i.Name, "Price: ", i.Price.toString(), "Weight: ", i.Weight.toString() + " lbs", "Quantity:",i.Quantity.toString()));

我正试图构建一系列排列整齐的字符串,但是格式没有按照我预期的方式工作

如果我有:

String.Format("{0,-25}{1,-7}{2,-18}{3,-8}{4,-15}{5,-3}{6,-10}",
              i.Name, "Price: ", i.Price.toString(), "Weight: ",
              i.Weight.toString() + " lbs", "Quantity:",i.Quantity.toString()));
我希望得到从行首开始的Name(一个字符串),然后从字符26开始的“Price”,依此类推。(所有名称均不超过10个字符)。取而代之的是,根据名字的长度,第二列到处都是

我也使用
StringBuilder
尝试了这一点,得到了相同的结果。许多互联网搜索显示的代码与我的代码几乎相同,因此我不确定哪些代码不起作用


编辑:修复了打字错误

我怀疑问题在于显示,而不是字符串本身。只有当字体为单空格字体时,这些对齐方式才起作用。单空格字体是每个字符宽度相同的字体。Windows、Office、VisualStudio提供了其中的几个。很多人认为“控制台”是最好的。
我建议您更改将数据显示到ConsoleAS的任何控件的字体。

是否以单空格字体显示结果?您提供的代码包含多个错误。您正在将一个“c”格式传递给一个字符串值,如果它被正确大写(标记是c#,而不是Java!)。在结尾有一条斜线,句号可能就是你的意思。我怀疑,如果您发布了您遇到问题的真实代码,问题可能会很明显。