Raw string literals
Tre citattecken (""") öppnar en raw string — en sträng som kan innehålla radbrytningar, citattecken och backslashes utan ett enda escape-tecken. Perfekt för JSON, HTML, SQL och regex som annars kräver en djungel av \" och \\.
När du läst detta ska du kunna
- Skriva raw strings med
""" - Bädda in JSON, HTML och SQL utan escape-tecken
- Kombinera raw strings med stränginterpolering (
$"""...""") - Kontrollera indragning med stängande
"""
Problemet raw strings löser
// Gammal stil — svår att läsastring json = "{\n \"name\": \"Anna\",\n \"age\": 30\n}";
// Verbatim string (@"...") — bättre, men citattecken är fortfarande jobbigastring json = @"{ ""name"": ""Anna"", ""age"": 30}";// Raw string — exakt som du ser detstring json = """{ "name": "Anna", "age": 30}""";Grundregler
// Öppna med """ på en rad, avsluta med """ på en egen radstring text = """Hej, världen!Det här är en raw string.Inga escape-tecken behövs.""";Stängande """ avgör indragen i outputen — allt till vänster om dem klipps bort:
string indragning = """ Rad 1 Rad 2 """;// Resulterar i " Rad 1\n Rad 2\n" — 4 blanksteg kvarstring ingen = """ Rad 1 Rad 2""";// Stängande """ vid kolumn 0 → 4 blanksteg i outputJSON utan escape-tecken
string json = """{ "user": { "id": 42, "name": "Marcus", "roles": ["admin", "teacher"] }}""";
Console.WriteLine(json);HTML
string html = """<!DOCTYPE html><html lang="sv"> <head><title>Min sida</title></head> <body> <h1>Välkommen</h1> </body></html>""";SQL
string query = """ SELECT u.Name, COUNT(o.Id) AS OrderCount FROM Users u LEFT JOIN Orders o ON o.UserId = u.Id WHERE u.IsActive = 1 GROUP BY u.Name ORDER BY OrderCount DESC """;Interpolerade raw strings — $"""…"""
Kombinera med interpolering för dynamiska värden:
string name = "Anna";int age = 30;
string json = $"""{ "name": "{name}", "age": {age}}""";Om du behöver en faktisk klammerparentes i outputen — dubbla dem ({{ → {):
string template = $"""Hej {name}!Klammerexempel: {{literal}}""";// → Hej Anna!// Klammerexempel: {literal}Citattecken inuti raw strings
Kan du ha """ inuti strängen? Ja — lägg till fler citattecken på öppning och stängning:
string med3 = """"Det här innehåller """ tre citattecken."""";Regeln: antalet citattecken i öppnaren bestämmer hur många som krävs för att stänga.
TL;DR
// Raw string — ingen escapingstring json = """{ "name": "Marcus", "active": true}""";
// Interpolerad raw stringstring greeting = $"""Hej, {name}!""";
// En rad är också OKstring sql = """SELECT * FROM Users WHERE IsActive = 1""";Raw strings gör JSON, HTML, SQL och regex läsliga. Tre citattecken, och du slipper escaping helt.