Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Tip
Dit artikel maakt deel uit van de sectie Grondbeginselen voor ontwikkelaars die al ten minste één programmeertaal kennen en C# leren. Als u nieuw bent in programmeren, begint u eerst met de Aan de slag-handleidingen.
Komt u uit een andere taal? Concatenatie in C# met + loopt parallel aan Java en JavaScript. C# voegt tekenreeksinterpolatie ($"{x}"), vergelijkbaar met letterlijke javaScript-sjablonen en Python f-tekenreeksen, toe als voorkeurswijze voor het bouwen van tekenreeksen op basis van variabelen. Bij het bouwen van strings in een lus biedt C# StringBuilder, net als Java's StringBuilder.
Samenvoeging voegt één tekenreeks toe aan het einde van een andere tekenreeks om een nieuwe tekenreeks te produceren. C# biedt u verschillende manieren om samen te voegen en de beste keuze is afhankelijk van het feit of u een vaste set waarden of een verzameling samenvoegt of een tekenreeks per stuk in een lus maakt.
Stringliteralen samenvoegen
Wanneer u letterlijke tekenreeksen of constanten +samenvoegt, voegt de compiler deze samen op het moment van compileren. Het opsplitsen van een lange letterlijke tekenreeks over meerdere regels verbetert de leesbaarheid in de broncode zonder extra runtimekosten:
// The compiler joins adjacent string literals at compile time,
// so splitting a long literal across lines has no run-time cost.
string message =
"This is the first sentence of a longer message. " +
"This is the second sentence. " +
"This is the third and final sentence.";
Console.WriteLine(message);
// => This is the first sentence of a longer message. This is the second sentence. This is the third and final sentence.
Gebruik de +- en +=-operatoren
Als u tekenreeksvariabelen wilt combineren, gebruikt u de + operator om een nieuwe tekenreeks te maken of += om een bestaande tekenreeks toe te voegen. De + operator is intuïtief en de compiler kopieert de tekenreeksinhoud slechts eenmaal, zelfs wanneer u meerdere operators in één expressie koppelt:
string name = "Alex";
string day = "Monday";
// Use + to build a string from variables and literals.
string greeting = "Hello " + name + ". Today is " + day + ".";
Console.WriteLine(greeting);
// => Hello Alex. Today is Monday.
// Use += to append to an existing string.
greeting += " How are you today?";
Console.WriteLine(greeting);
// => Hello Alex. Today is Monday. How are you today?
Opmerking
In tekenreekssamenvoeging behandelt C# een null tekenreeks hetzelfde als een lege tekenreeks, dus samenvoegen null voegt niets toe aan het resultaat.
Tekenreeksinterpolatie gebruiken
Als u berekende expressies in een tekenreeks wilt insluiten, geeft u de voorkeur aan tekenreeksinterpolatie boven positionele tijdelijke aanduidingen, zoals de {0} en {1} tokens die String.Format overnemen van de opmaak in C-stijl. Met interpolatie wordt elke expressie inline geplaatst waar de waarde wordt weergegeven, zodat de resultaattekenreeks leesbaar blijft en u een argument niet verkeerd kunt uitlijnen:
string name = "Alex";
string day = "Monday";
// String interpolation reads better than a chain of + operators.
string greeting = $"Hello {name}. Today is {day}.";
Console.WriteLine(greeting);
// => Hello Alex. Today is Monday.
Wanneer elke geïnterpoleerde expressie zelf een constante tekenreeks is, kunt u het geïnterpoleerde resultaat toewijzen aan een const tekenreeks.
Een verzameling tekenreeksen samenvoegen
Als u de elementen van een verzameling wilt combineren, gebruikt String.Concat u deze samen te voegen zonder scheidingsteken of String.Join om een scheidingsteken tussen elk element te plaatsen:
string[] words = ["The", "quick", "brown", "fox"];
// Concat joins the sequence with no separator.
string runTogether = string.Concat(words);
Console.WriteLine(runTogether);
// => Thequickbrownfox
// Join places a separator between each element.
string sentence = string.Join(' ', words);
Console.WriteLine(sentence);
// => The quick brown fox
string.Join is het juiste hulpprogramma wanneer u gescheiden uitvoer nodig hebt, zoals door komma's gescheiden waarden of door spaties gescheiden woorden.
Een tekenreeks opbouwen in een lus
Elke + bewerking += maakt een nieuwe tekenreeks, omdat tekenreeksen onveranderbaar zijn. Wanneer u veel onderdelen in een lus toevoegt, telt die toewijzing op. De StringBuilder klasse bouwt in plaats daarvan het resultaat in één buffer:
// StringBuilder builds a string in place, which suits loops
// that append many pieces.
var builder = new StringBuilder();
for (int i = 1; i <= 3; i++)
{
builder.AppendLine($"Line {i}");
}
Console.Write(builder.ToString());
// => Line 1
// => Line 2
// => Line 3
Kies voor StringBuilder wanneer het aantal elementen groot is of tijdens het compileren onbekend is. Voor een vaste, kleine set waarden zijn de + operator en tekenreeksinterpolatie duidelijker. Zie De string en StringBuilder typen voor richtlijnen over wanneer elke benadering het beste presteert.