String verketten

String verketten

# + Operator

string s1 = "string1";
string s2 = "string2";

string s3 = s1 + s2; // "string1string2"

# Strings mit System.Text.StringBuilder verketten

Das Verketten von Zeichenfolgen mit einem StringBuilder kann Leistungsvorteile gegenüber der einfachen Zeichenfolgenverkettung mit + bieten . Dies liegt an der Art und Weise, wie Speicher zugewiesen wird. Zeichenfolgen werden bei jeder Verkettung neu zugewiesen, StringBuilder weisen Speicher in Blöcken nur dann neu zu, wenn der aktuelle Block erschöpft ist. Dies kann einen großen Unterschied machen, wenn viele kleine Verkettungen durchgeführt werden.

StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
    sb.Append(i);
    sb.Append(" ");
}
Console.WriteLine(sb.ToString()); // "1 2 3 4 5 "

Ruft Append() an kann verkettet werden, da es einen Verweis auf StringBuilder zurückgibt :

StringBuilder sb = new StringBuilder();
sb.Append("some string ")
  .Append("another string");

# Concat-String-Array-Elemente mit String.Join

Die String.Join Methode kann verwendet werden, um mehrere Elemente aus einem String-Array zu verketten.

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";

string result = String.Join(separator, value, 1, 2);
Console.WriteLine(result);

Erzeugt die folgende Ausgabe:"orange, grape"

Dieses Beispiel verwendet den String.Join(String, String[], Int32, Int32) Überladung, die den Startindex und die Anzahl über dem Trennzeichen und dem Wert angibt.

Wenn Sie die Überladungen startIndex und count nicht verwenden möchten, können Sie alle angegebenen Zeichenfolgen verbinden. So:

string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value);
Console.WriteLine(result);

die produzieren wird;

Apfel, Orange, Traube, Birne

# Verkettung zweier Strings mit $

$ bietet eine einfache und prägnante Methode, um mehrere Zeichenfolgen zu verketten.

var str1 = "text1";
var str2 = " ";
var str3 = "text3";
string result2 = $"{str1}{str2}{str3}"; //"text1 text3"

# Bemerkungen

Wenn Sie eine dynamische Zeichenfolge erstellen, empfiehlt es sich, sich für StringBuilder zu entscheiden Klasse, anstatt Strings mit + oder Concat zu verbinden Methode als jeweils +/Concat erstellt bei jeder Ausführung ein neues String-Objekt.