我有一个字符串,我已经初始化为空并构建字符串,如下所示我也得到了我想要的首选输出,这是最好的方法,因为这将作为电子邮件发送。考虑到公司名称的长度不同。
字符串是buit
foreach(string s in array)
{
emailBody += s + " Success" + Environment.NewLine;
}
字符串输出
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
想要输出如下
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
给出解决方案的输出
qxeawgentina Success
TweseqmeChile Success
Vidqwedal Success
qwebr Success
Doqa_brasil Success
Sedaqqagentina Success
KnaqwertArtina Success
答案 0 :(得分:4)
PadLeft是一个很好的功能,用于这样的东西。你可以这样做:
StringBuilder myString = new StringBuilder();
foreach(string s in array)
{
myString.Append(s + "Success".PadLeft(15 - s.Length) + Environment.NewLine);
}
emailBody = myString.ToString();
将常量15更改为您的集合中最长的CompanyName,否则PadLeft
会在它变为负数时抛出异常。
(如评论中所述,StringBuilder
也是一个好主意)
答案 1 :(得分:2)
基本上你可以使用string.Format并指定每个占位符的宽度,如下所示:
// Prints "--123 --"
string.Format("--{0,-10}--", 123);
// Prints "-- 123--"
string.Format("--{0,10}--", 123);
编辑: 将此应用于您的示例:
foreach(string s in array)
{
emailBody += string.Format("{0, 25} | Success", s) + Environment.NewLine;
}
答案 2 :(得分:0)
修剪你的字符串并计算最长的字符串长度:
int maxLength = 0;
foreach(string s in array)
{
l = s.Trim().Length;
if (l > maxLength)
{
maxLength = l;
}
}
foreach(string s in array)
{
emailBody += System.Format("{0,-" + maxLength.ToString() + "} | Success" + Environment.NewLine, s.Trim());
}