Syntaks for collection-udtryk
Initialisér arrays, lister og spans ensartet.
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 0Erstatning 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); // TrueIndlejrede 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]); // 3Udtryk 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,3Bemæ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 2Arbejde 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); // 10Overfø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])); // 12Bedre 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]); // FriReturnering 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,11Hurtig 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.
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
- Syntaks for collection-udtryk
- Spread-elementet
- Target typing af collections
- Collection builders