C# Academy · Lektion

Syntax för samlingsuttryck

Initiera arrayer, listor och spans på ett enhetligt sätt.

Lektion 1 av 413 steg

Syntax för samlingsuttryck är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 4 lektioner.

Samlingsuttryck (C# 12)

C# 12 introducerar samlingsuttryck: en enda syntax med hakparenteser för att skapa arrayer, listor, spans med mera. I stället för new int[] { 1, 2, 3 } skriver du helt enkelt [1, 2, 3].

using System;

int[] numbers = [1, 2, 3, 4, 5];
Console.WriteLine(string.Join(",", numbers)); // 1,2,3,4,5

En syntax, många mål

Samma literal [...] fungerar oavsett om målet är en array, en List<T> eller en Span<T>. Kompilatorn väljer rätt konstruktion.

using System;
using System.Collections.Generic;

int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);

Tomma samlingar

Ett tomt samlingsuttryck är helt enkelt []. Det är tydligare än Array.Empty<T>() eller new List<T>() och måltypas automatiskt.

using System;
using System.Collections.Generic;

int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0

Ersätta utförliga initierare

Samlingsuttryck tar bort omständligheten i den gamla initierarsyntaxen. Jämför de två formerna nedan.

using System;
using System.Collections.Generic;

// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // True

Nästlade samlingar

Ni kan nästla samlingsuttryck för att skapa jagged-arrayer eller listor med listor.

using System;

int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3

Uttryck som element

Element kan vara vilket uttryck som helst, inklusive variabler, metodanrop och aritmetik.

using System;

int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3

Anmärkning om flerdimensionella arrayer

Samlingsuttryck skapar jagged-arrayer (int[][]), inte rektangulära arrayer (int[,]). Rektangulära arrayer använder fortfarande sin egen syntax.

using System;

int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2

Arbeta med Span

Eftersom samlingsuttryck kan måltypas till Span<T> och ReadOnlySpan<T> kan kompilatorn använda stackallokering och därmed undvika skräp på heapen för kortlivade data.

using System;

ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10

Skicka samlingar till metoder

När en parameter har en samlingstyp kan Ni skicka ett samlingsuttryck direkt vid anropet.

using System;

static int Sum(int[] xs) {
    int t = 0;
    foreach (int x in xs) t += x;
    return t;
}

Console.WriteLine(Sum([2, 4, 6])); // 12

Fördelar för läsbarheten

Samlingsuttryck kommer verkligen till sin rätt i datatät kod, till exempel konfigurationstabeller eller testdata, där hakparenteserna låter värdena stå i centrum.

using System;

string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // Fri

Returnera samlingar

En metod kan returnera ett samlingsuttryck, där returtypen styr hur det skapas.

using System;

static int[] Primes() => [2, 3, 5, 7, 11];

Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11

Snabb kontroll

Kontrollera Er förståelse av grunderna i samlingsuttryck.

Sammanfattning

Ni har lärt Er syntaxen för samlingsuttryck i C# 12.

  • [1, 2, 3] ersätter utförliga initierare.
  • [] är en tom samling.
  • Uttrycket måltypas: arrayer, listor och span fungerar alla.
  • Nästlade hakparenteser skapar jagged-arrayer.
Gratis att börja

Lär dig C# med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
93
Lektioner
346

Vanliga frågor

Är lektionen ”Syntax för samlingsuttryck” gratis?

Ja – hela texten till ”Syntax för samlingsuttryck” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Syntax för samlingsuttryck”?

Initiera arrayer, listor och spans på ett enhetligt sätt. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C# Academy?

Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Syntax för samlingsuttryck”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C# Academy-lektionen?

Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Syntax för samlingsuttryck
  2. Spread-elementet
  3. Målinferens för samlingar
  4. Samlingsbyggare
← Tillbaka till C# Academy