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,没什么用。
答案 0 :(得分:0)
以下是使用“字符串”构建器的更新代码 总是尝试使用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
答案 1 :(得分: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这样的固定宽度字体来正确对齐。