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);
}

2つの文字列を連結して、テキストボックス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やCourierNewなどの固定幅フォントを使用して、適切に配置します。

于 2013-02-05T22:39:16.567 に答える