C# Language
String Concatenate
Sök…
Anmärkningar
Om du skapar en dynamisk sträng är det en bra praxis att välja StringBuilder
klassen snarare än att gå med strängar med + eller Concat
metoden eftersom varje + / Concat
skapar ett nytt strängobjekt varje gång det körs.
+ Operatör
string s1 = "string1";
string s2 = "string2";
string s3 = s1 + s2; // "string1string2"
Sammanfoga strängar med System.Text.StringBuilder
Sammanfogning av strängar med en StringBuilder kan erbjuda prestandafördelar jämfört med enkel strängkoncatenation med +
. Detta beror på hur minnet allokeras. Strängar fördelas om med varje sammanlänkning, StringBuilders tilldelar minne i block endast omfördelas när det aktuella blocket är uttömt. Detta kan göra en stor skillnad när du gör många små sammanlänkningar.
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 "
Calls to Append()
kan vara daisy chained, eftersom det returnerar en referens till StringBuilder
:
StringBuilder sb = new StringBuilder();
sb.Append("some string ")
.Append("another string");
Concat sträng arrayelement med String.Join
Metoden String.Join
kan användas för att sammanfoga flera element från en stränggrupp.
string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value, 1, 2);
Console.WriteLine(result);
Tillverkar följande utgång: "orange, druva"
Detta exempel använder String.Join(String, String[], Int32, Int32)
överbelastning, som anger startindex och räknar på toppen av separatorn och värdet.
Om du inte vill använda startIndex och räkna överbelastningar kan du gå med i alla angivna strängar. Så här:
string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value);
Console.WriteLine(result);
som kommer att producera;
äpple, apelsin, druva, päron
Sammankoppling av två strängar med $
$ ger en enkel och kortfattad metod för att sammanfoga flera strängar.
var str1 = "text1";
var str2 = " ";
var str3 = "text3";
string result2 = $"{str1}{str2}{str3}"; //"text1 text3"