在C#中使用未知字符串长度的\ t进行格式化

时间:2015-05-04 12:27:03

标签: c# format

这可能是一个难题,或者是一个非常简单的问题。无论哪种方式,请耐心等待,因为我对C#很新。

我一直在建造一个Form内部ListBox以及其他一些东西,而且一切都很顺利。事情变得奇怪的是填充所述信息框。

到目前为止,填写此ListBox的逻辑是:

foreach (var value in userList)
{
    listBoxForForm.Items.Add("#" + value.internalId + " \t\t-\t" + value.title + "\t\t-\t" + value.typeName);
}

(不要介意"之间奇怪的\t!)

问题在于,如果某些值太长,这看起来很奇怪(不是"长"如value.length,但"长"如宽度)。

为了更好地解释它,我拍了一张截图(原谅政府风格的审查):

正如您所看到的,问题是在此上下文中使用\t时,文本似乎无法正确格式化。

有没有一种方法可以将这个文本整齐地打印成我想要的3列样式?不知道每个value中变量的长度,我的意思是?

3 个答案:

答案 0 :(得分:3)

您应该尝试使用String.PadLeft()

data: [7,12,16,32,{y:64,marker:{enabled:true,radius:5,fillColor:'#c00'}}]

将输出:

using System;

class Program {
    static void Main()
    {   
        string s = "cat".PadRight(10);  string s2 = "poodle".PadRight(10);
        Console.Write(s);   
        Console.WriteLine("feline");    
        Console.Write(s2);  
        Console.WriteLine("canine");
    }
}

答案 1 :(得分:1)

您应该使用String.PadRight(X)而不是使用制表符,其中X是字段的最大长度。您需要确保X值超过数据的最大长度,或者将数据剪切到最大长度以确保列对齐。

答案 2 :(得分:0)

我认为你要找的是this

String.PadRight和String.PadLeft Methods