使用填充时,字符串格式不会按预期运行

时间:2011-10-06 06:59:37

标签: c# .net string-formatting

我正在尝试根据来自SqlDataReader的结果形成表的文本表示。

while (unitsRdr.Read())
{
    note.AppendFormat("{0,-15}", String.Format("{0}({1})", unitsRdr.GetValue(0), unitsRdr.GetValue(1)));
}

现在我期望发生的是我应该得到4组物品,右边的填充物等于15.这样的

BP(mm\Hg)      HR(bpm)        RR(rpm)        Sa O2(%)       |<-- this would be the end of the string.

然而,我得到的是

BP(mm\Hg          )HR(bpm            )RR(rpm            )Sa O2(%              )|<-- this is the end of the string.

似乎在(之后开始计数,)放在空格数之后。

进行格式化的正确方法是什么,所以文本就像我的第一个例子?


对于任何想要它的人来说,这是源表

desc         unit
------------ ----------
BP           mm\Hg     
HR           bpm       
RR           rpm       
Sa O2        %         

1 个答案:

答案 0 :(得分:2)

我强烈怀疑问题是unitsRdr.GetValue(1)返回的值实际上比你想象的要长。我非常怀疑string.Format正在这样做。请尝试使用unitsRdr.GetValue(1).Trim()代替 - 或者只使用硬编码的文字值进行测试。