0
cities = result.Results.Entities.Cast<Address>().ToList();
foreach (Address address in cities)
{
    int spaces = (30 - address.City.Length);
     string s1 = address.City.Trim();
    for (int i = 0; i <= spaces; i++)
    {
        s1 += " ";
    }
    s1 += address.PostalCode;
    customCollection.Add(s1);
}

我想连接两个字符串,以便它们在文本框 autocompletecustomsource 的列中排列。

无论我做什么,我都无法让城市和邮政编码在列中对齐。

我想:

New Bedlam    101010
New York      102010

我得到:

New Bedlam      101010
New York      102010

尝试了一堆东西,string.format,padright,没有任何效果。

4

2 回答 2

0

这是 String builder 的更新代码 始终尝试使用 StringBuilder 进行字符串连接操作,您可以将字符串附加到它并执行其他操作这里是更多信息

 cities = result.Results.Entities.Cast<Address>().ToList();
                    foreach (Address address in cities)
                    {
                        int spaces = (30 - address.City.Length);
                         Stringbuilder s1 = new StringBuilder();
                         s1.append(address.City.Trim());
                        for (int i = 0; i <= spaces; i++)
                        {
                            s1.append(" ");
                        }
                        s1.append(address.PostalCode);
                        customCollection.Add(s1.ToString());
                    }

http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx

于 2013-02-05T22:08:05.573 回答
0

只需string.Format与左对齐宽度说明符一起使用:

foreach (Address address in cities)
{
    string s1 = string.Format("{0,-30}{1}",address.City,address.PostalCode);
    customCollection.Add(s1);
}

请注意,如果您的文本框使用可变宽度字体(如 Arial),则邮政编码不会对齐。使用固定宽度的字体,如 Consolas 或 Courier New 来正确对齐。

于 2013-02-05T22:39:16.567 回答