Die String-Verkettung Vs String-Generator Anhängen

Also...ich habe dieses Szenario, wo ich eine Foreach-Schleife durchläuft eine Liste von Checkboxen zu überprüfen, welche ausgewählt sind. Für jede checkbox ausgewählt, ich habe zu tun, einen ziemlich langen string-Verkettung, mit 30 verschiedenen Zeichenfolgen, die eine Durchschnittliche Länge von 20 Zeichen und senden Sie es dann als HTTP-request. 2 des strings abhängig von der index-Wert der checkbox ausgewählt werden.

Die Länge der Liste von Checkboxen ist auch variabel je nach den Daten des Benutzers. Ich würde sagen, die Durchschnittliche Länge der Liste wäre 20, aber es gehen kann, bis zu 50-60. So ist die worst-case-Szenario wäre die Durchführung der gesamten string-Verkettung 60 oder so mal.

Für jetzt mache ich es mit einfachen Verkettung von Strings mit dem ' + ' - operator, aber ich Frage mich, ob es wäre schneller, es zu tun mit Stringbuilder. Natürlich, das bedeutet, dass ich entweder erstellen Sie ein Stringbuilder-Objekt innerhalb der Schleife, oder erstellen Sie es, bevor die Schleife und nennen die Klasse Stringbuilder.Entfernen Sie am Ende der es, nach versenden der HTTP-Anforderung.

Ich freue mich über jede Einblicke niemandem teilen kann in Bezug auf dieses Problem.

BEARBEITEN
Vielen Dank für all die Antworten alle zusammen, also von dem, was ich gesammelt habe, die beste Möglichkeit für mich zu tun, dies wäre so etwas wie:

 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;
      }
  }
Ich entschuldige mich, es scheint, ich verstehe nicht, Stringbuilder gut genug. So ruft die Klasse Stringbuilder.ToString() löscht den Stringbuilder?
Nein. Wenn für die Length-Eigenschaft auf null, löscht es.
someStringBuilder.length = 0;
Sie könnten check out <ein href="stackoverflow.com/questions/1612797/...> SO ein post auf die Verkettung vs Stringbuilder perforamnce.
Ich habe deine Frage oben, aber ich wollte auch darauf hinweisen, dass Ihr Bearbeiten, ist irreführend. Sie verwendeten die phrase "der beste Weg", das ist A) subjektiv und B) nicht korrekt. In Bezug auf A) Bessere Formulierung wäre "die allgemein vereinbarte Weise". Bezüglich B) "besser" in diesem Fall ist die Verwendung von String.Concat statt StringBuilder, wie in meinem vorgeschlagenen Antwort. Nichts falsch mit der Antwort, StringBuilder ist in Ordnung. Nur vorsichtig sein, etwas zu behaupten, als "die besten" da oft etwas wurde oder entdeckt werden, was eigentlich besser ist.

InformationsquelleAutor Kronon | 2009-12-29

Schreibe einen Kommentar