所以......我有这个场景,我有一个Foreach循环,循环通过一个复选框列表来检查选中哪个.对于每个选中的复选框,我必须进行相当长的字符串连接,涉及30个平均长度为20个字符的不同字符串,然后将其作为HTTP请求发送出去.其中2个字符串取决于所选复选框的索引/值.
复选框列表的长度也可根据用户的数据而变化.我会说List的平均长度是20,但它可以达到50-60.因此,最糟糕的情况是执行整个字符串连接60次左右.
现在我通过'+'运算符使用简单的字符串连接来完成它,但我想知道使用Stringbuilder执行它是否会更快.当然,这意味着我必须在循环中创建一个Stringbuilder对象,或者在循环之前创建它,并在发出HTTP请求后调用Stringbuilder.Remove.
我感谢任何人可以就此问题分享任何见解.
编辑
感谢所有人的回复,所以从我收集的内容来看,这样做的最佳方式是:
StringBuilder sb = new StringBuilder();
foreach (CheckBox item in FriendCheckboxList)
{
if (item.Checked)
{
sb.Append(string1);
sb.Append(string2);
sb.Append(string3);
.
.
.
sb.Append(stringLast);
SendRequest(sb.ToString());
sb.Length = 0;
}
}
Run Code Online (Sandbox Code Playgroud) c# ×1