Delen via


Meer informatie over het beheren van gegevensverzamelingen met behulp van Lijst<T> in C#

Deze inleidende handleiding biedt een inleiding tot de C#-taal en de basisbeginselen van de klasse.

In deze zelfstudie leert u C# interactief met behulp van uw browser om C#-code te schrijven en de resultaten te zien van het compileren en uitvoeren van uw code. Het bevat een reeks lessen die verzamelingen en matrices maken, wijzigen en verkennen. U werkt voornamelijk met de List<T> klasse.

Een voorbeeld van een basislijst

Hint

Wanneer een codefragmentblok de knop Uitvoeren bevat, wordt het interactieve venster geopend of wordt de bestaande code in het interactieve venster vervangen. Wanneer het codefragment geen knop Uitvoeren bevat, kunt u de code kopiëren en toevoegen aan het huidige interactieve venster.

Voer de volgende code uit in het interactieve venster. Vervang <name> door uw naam en selecteer Uitvoeren:

List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

U hebt een lijst met tekenreeksen gemaakt, drie namen aan die lijst toegevoegd en de namen in alle CAPS 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 hoelang de lijst de Count eigenschap gebruikt. Voeg de volgende code toe:

Console.WriteLine($"The list has {names.Count} people in it");

Selecteer opnieuw uitvoeren om de resultaten weer te geven. In C# beginnen indexen bij 0, dus de grootste geldige index is één kleiner dan het aantal items in de lijst.

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.

De items in uw lijst kunnen ook worden gesorteerd. 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

U hebt het string type in lijsten tot nu toe gebruikt. Laten we een List<T> maken met een ander type. Laten we een set getallen bouwen. Verwijder de code die u tot nu toe hebt geschreven en vervang deze door de volgende code:

List<int> fibonacciNumbers = [1, 1];

Hiermee maakt u een lijst met gehele getallen en stelt u 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);
}

Druk op Uitvoeren om de resultaten te zien;

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?

:::code language="csharp" interactive="try-dotnet-method" source="./snippets/ListCollection/Program.cs" id="Answer":::

Bij 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 hebt toegevoegd.

U hebt de interactieve lijstzelfstudie voltooid, de laatste inleiding tot de interactieve C#-zelfstudie. U kunt de .NET-site bezoeken om de .NET SDK te downloaden, een project op uw computer te maken en codering te behouden. In de sectie "Volgende stappen" wordt u teruggeleid naar deze tutorials. U kunt ook doorgaan met de zelfstudie Objectgeoriënteerd programmeren verkennen met klassen en objecten.

Meer informatie over .NET-verzamelingen vindt u in de volgende artikelen: