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.
Deze inleidende zelfstudie biedt een inleiding tot de C#-taal en de basisbeginselen van de System.Collections.Generic.List<T> klas.
In deze tutorial leer je C#. U schrijft C#-code en ziet de resultaten van het compileren en uitvoeren van die code. Het bevat een reeks lessen waarmee verzamelingen worden gemaakt, gewijzigd en verkend. U werkt voornamelijk met de List<T> klasse.
In deze handleiding leert u:
- Start een GitHub Codespace met een C#-ontwikkelomgeving.
- Verschillende typen lijsten maken.
- De inhoud van de lijst wijzigen.
- Lijsten zoeken en sorteren.
Vereiste voorwaarden
U moet een van de volgende opties hebben:
- Een GitHub-account voor het gebruik van GitHub Codespaces. Als u nog geen account hebt, kunt u een gratis account maken op GitHub.com.
- Een computer waarop de volgende hulpprogramma's zijn geïnstalleerd:
- De .NET 10 SDK.
- Visual Studio Code.
- De C# DevKit.
Een voorbeeld van een basislijst
Als u een GitHub Codespace met de zelfstudieomgeving wilt starten, opent u een browservenster naar de opslagplaats van de zelfstudiecodespace . Selecteer de groene knop Code en het tabblad Codespaces . Selecteer vervolgens het + teken om een nieuwe Codespace te maken met behulp van deze omgeving. Als u andere zelfstudies in deze reeks hebt voltooid, kunt u die coderuimte openen in plaats van een nieuwe te maken.
Zodra uw codespace is geladen, maakt u een nieuw bestand in de map tutorials met de naam lists.cs.
Open het nieuwe bestand.
Typ of kopieer de volgende code in lists.cs:
List<string> names = ["<name>", "Ana", "Felipe"]; foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }Voer de code uit door de volgende opdracht in het terminalvenster te typen:
cd tutorials dotnet lists.cs
U hebt een lijst met tekenreeksen gemaakt, drie namen aan die lijst toegevoegd en de namen in alle hoofdletters afgedrukt. U gebruikt concepten die u in eerdere zelfstudies hebt geleerd om de lijst te doorlopen.
De code voor het weergeven van namen maakt gebruik van de functie tekenreeksinterpolatie . Wanneer u een string teken voorafgaat met het $ teken, kunt u C#-code insluiten in de stringdeclaratie. De werkelijke tekenreeks vervangt die C#-code door de waarde die wordt gegenereerd. In dit voorbeeld wordt de {name.ToUpper()} vervangen door elke naam, omgezet in hoofdletters, omdat u de String.ToUpper-methode hebt aangeroepen.
Laten we blijven verkennen.
Inhoud van lijst wijzigen
De verzameling die u hebt gemaakt, maakt gebruik van het List<T> type. Met dit type worden reeksen elementen opgeslagen. U bepaalt het type van de elementen tussen de hoekige haakjes.
Een belangrijk aspect van dit List<T> type is dat het kan groeien of verkleinen, zodat u elementen kunt toevoegen of verwijderen. U kunt de resultaten bekijken door de inhoud te wijzigen nadat u de inhoud ervan hebt weergegeven.
Voeg de volgende code toe na de code die u al hebt geschreven (de lus waarmee de inhoud wordt afgedrukt):
Console.WriteLine(); names.Add("Maria"); names.Add("Bill"); names.Remove("Ana"); foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }U hebt nog twee namen toegevoegd aan het einde van de lijst. U hebt er ook een verwijderd. In de uitvoer van dit codeblok wordt de oorspronkelijke inhoud weergegeven, waarna een lege regel en de nieuwe inhoud worden afgedrukt.
Hiermee List<T> kunt u ook verwijzen naar afzonderlijke items per index . U opent items met behulp van de
[en]tokens. Voeg de volgende code toe na wat u al hebt geschreven en probeer het uit:Console.WriteLine($"My name is {names[0]}."); Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");U mag geen toegang krijgen tot het einde van de lijst. U kunt controleren hoe lang de lijst is met behulp van de Count eigenschap.
Voeg de volgende code toe:
Console.WriteLine($"The list has {names.Count} people in it");Typ
dotnet lists.csopnieuw in het terminalvenster om de resultaten te bekijken. In C# beginnen indexen bij 0, dus de grootste geldige index is één kleiner dan het aantal items in de lijst.
Voor meer informatie over indexen, zie het artikel Indexen en reeksen verkennen.
Lijsten zoeken en sorteren
In onze voorbeelden worden relatief kleine lijsten gebruikt, maar uw toepassingen kunnen vaak lijsten met veel meer elementen maken, soms met een nummering in de duizenden. Als u elementen in deze grotere verzamelingen wilt vinden, moet u in de lijst naar verschillende items zoeken. De IndexOf methode zoekt naar een item en retourneert de index van het item. Als het item zich niet in de lijst bevindt, geeft IndexOf-1 terug.
Probeer het om te zien hoe het werkt. Voeg de volgende code toe na wat u tot nu toe hebt geschreven:
var index = names.IndexOf("Felipe"); if (index == -1) { Console.WriteLine($"When an item is not found, IndexOf returns {index}"); } else { Console.WriteLine($"The name {names[index]} is at index {index}"); } index = names.IndexOf("Not Found"); if (index == -1) { Console.WriteLine($"When an item is not found, IndexOf returns {index}"); } else { Console.WriteLine($"The name {names[index]} is at index {index}"); }Mogelijk weet u niet of een item in de lijst staat, dus moet u altijd de index controleren die wordt geretourneerd door IndexOf. Als dat het is
-1, is het item niet gevonden.U kunt ook de items in uw lijst sorteren. De Sort methode sorteert alle items in de lijst in de normale volgorde (alfabetisch voor tekenreeksen). Voeg deze code toe en voer deze opnieuw uit:
names.Sort(); foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }
Lijsten van andere typen
Tot nu toe hebt u het string type in lijsten gebruikt. Laten we een List<T> maken met een ander type. Laten we een set getallen bouwen.
Voeg de volgende code toe aan het einde van het bronbestand:
List<int> fibonacciNumbers = [1, 1];Deze code maakt een lijst met gehele getallen en stelt de eerste twee gehele getallen in op de waarde 1. De Fibonacci-reeks, een reeks getallen, begint met twee 1's. Elk volgend Fibonacci-getal wordt gevonden door de som van de vorige twee getallen te nemen.
Voeg deze code toe:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1]; var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2]; fibonacciNumbers.Add(previous + previous2); foreach (var item in fibonacciNumbers) { Console.WriteLine(item); }Typ
dotnet lists.csin het terminalvenster om de resultaten te bekijken.
Uitdaging
Kijk of u enkele van de concepten uit deze en eerdere lessen kunt samenstellen. Breid uit wat u tot nu toe hebt gebouwd met Fibonacci Numbers. Probeer de code te schrijven om de eerste 20 getallen in de reeks te genereren. (Als hint is het 20e Fibonacci-getal 6765.)
Heb je zoiets bedacht?
List<int> fibonacciNumbers = [1, 1];
while (fibonacciNumbers.Count < 20)
{
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
}
foreach (var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Met elke iteratie van de lus neemt u de laatste twee gehele getallen in de lijst op, telt u deze op en voegt u die waarde toe aan de lijst. De lus wordt herhaald totdat u 20 items aan de lijst toevoegt.
U hebt de lijsttutorial voltooid. Meer informatie over .NET-verzamelingen vindt u in de volgende artikelen:
- Een verzamelingstype selecteren
- Veelgebruikte verzamelingstypen
- Wanneer algemene verzamelingen worden gebruikt
Middelen opschonen
GitHub verwijdert uw Codespace automatisch na 30 dagen inactiviteit. Als u van plan bent om meer tutorials uit deze serie te volgen, kunt u uw Codespace geconfigureerd laten. Als u klaar bent om naar de .NET-site te gaan om de .NET SDK te downloaden, kunt u uw Codespace verwijderen. Als u uw Codespace wilt verwijderen, opent u een browservenster en gaat u naar uw Codespaces. U ziet nu een lijst met uw coderuimten in het venster. Selecteer de drie puntjes (...) in de vermelding voor de zelfstudiecoderuimte en selecteer Verwijderen.