小编Kro*_*non的帖子

String Concatenation Vs String Builder Append

所以......我有这个场景,我有一个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#

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×1