C# Academy · Lektion

Syntaks for collection-udtryk

Initialisér arrays, lister og spans ensartet.

Lektion 1 af 413 trin

Syntaks for collection-udtryk er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.

Samlingsudtryk (C# 12)

C# 12 introducerer samlingsudtryk: en enkelt syntaks med firkantede parenteser til oprettelse af arrays, lister, spans og mere. I stedet for new int[] { 1, 2, 3 } skriver du ganske enkelt [1, 2, 3].

using System;

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

Én syntaks, mange måltyper

Den samme [...]-notation fungerer, uanset om måltypen er et array, en List<T> eller en Span<T>. Compileren vælger den rigtige oprettelse.

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);

Tomme samlinger

Et tomt samlingsudtryk er blot []. Det er tydeligere end Array.Empty<T>() eller new List<T>(), og typen bestemmes automatisk ud fra målet.

using System;
using System.Collections.Generic;

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

Erstatning af omstændelige initialiseringer

Samlingsudtryk fjerner den overflødige syntaks fra den gamle initialiseringsform. Sammenlign de to former nedenfor.

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

Indlejrede samlinger

Du kan indlejre samlingsudtryk for at opbygge jagged-arrays eller lister af lister.

using System;

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

Udtryk som elementer

Elementer kan være alle slags udtryk, herunder variabler, metodekald og 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

Bemærkning om flere dimensioner

Samlingsudtryk opretter jagged-arrays (int[][]), ikke rektangulære arrays (int[,]). Rektangulære arrays bruger stadig deres egen syntaks.

using System;

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

Arbejde med Span

Da samlingsudtryk kan målrettes mod Span<T> og ReadOnlySpan<T>, kan compileren bruge allokering på stacken og dermed undgå affald på heapen for data med kort levetid.

using System;

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

Overførsel af samlinger til metoder

Når en parameters type er en samling, kan du overføre et samlingsudtryk direkte ved kaldestedet.

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

Bedre læsbarhed

Samlingsudtryk er særligt nyttige i dataintensiv kode, f.eks. konfigurationstabeller eller testdata, hvor kantede parenteser holder fokus på værdierne.

using System;

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

Returnering af samlinger

En metode kan returnere et samlingsudtryk, hvor returtypen styrer oprettelsen.

using System;

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

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

Hurtig kontrol

Kontrollér din forståelse af det grundlæggende i samlingsudtryk.

Opsummering

Du har lært C# 12-syntaksen til samlingsudtryk.

  • [1, 2, 3] erstatter omstændelige initialiseringer.
  • [] er en tom samling.
  • Typen bestemmes ud fra målet: arrays, lister og spans fungerer alle.
  • Indlejrede kantede parenteser opbygger jagged-arrays.
Gratis at komme i gang

Lær C# med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
93
Lektioner
346

Ofte stillede spørgsmål

Er lektionen “Syntaks for collection-udtryk” gratis?

Ja — hele teksten til “Syntaks for collection-udtryk” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Syntaks for collection-udtryk”?

Initialisér arrays, lister og spans ensartet. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C# Academy?

Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Syntaks for collection-udtryk”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C# Academy-lektion?

Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Syntaks for collection-udtryk
  2. Spread-elementet
  3. Target typing af collections
  4. Collection builders
← Tilbage til C# Academy