Meer informatie over het beheren van gegevensverzamelingen met behulp van het algemene lijsttype
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.
Tip
Als u een codefragment in de focusmodus wilt plakken, moet u de sneltoets (Ctrl + v of cmd + v) gebruiken.
Lijsten maken
Voer de volgende code uit in het interactieve venster. Selecteer de knop Focusmodus invoeren. Typ vervolgens het volgende codeblok in het interactieve venster (vervang door <name>
uw naam) en selecteer Uitvoeren:
var names = new List<string> { "<name>", "Ana", "Felipe" };
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Als u dit uitvoert in uw omgeving, moet u in plaats daarvan de instructies voor de lokale versie volgen.
U hebt een lijst met tekenreeksen gemaakt, drie namen aan die lijst toegevoegd en de namen in 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 aan het $
teken, kunt u C#-code insluiten in de tekenreeksdeclaratie. De werkelijke tekenreeks vervangt die C#-code door de waarde die wordt gegenereerd. In dit voorbeeld wordt de {name.ToUpper()}
naam vervangen door elke naam, geconverteerd naar 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 geeft het type van de elementen tussen de punthaken op.
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 zien door de inhoud te wijzigen nadat u de inhoud ervan hebt weergegeven. Voeg de volgende code toe onder de code die u al hebt geschreven (onder 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 onder 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 om het te proberen:
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 maken met veel meer elementen, soms 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, IndexOf
wordt dit geretourneerd -1
. Probeer het om te zien hoe het werkt. Voeg de volgende code toe onder wat u tot nu toe hebt geschreven:
var index = names.IndexOf("Felipe");
if (index != -1)
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
var notFound = names.IndexOf("Not Found");
Console.WriteLine($"When an item is not found, IndexOf returns {notFound}");
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 met andere typen
U hebt het string
type in lijsten tot nu toe gebruikt. Laten we een List<T> ander type gebruiken. Laten we een set getallen bouwen. Verwijder de code die u tot nu toe hebt geschreven en vervang deze door de volgende code:
var fibonacciNumbers = new List<int> {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 1s. 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.)
Uitdaging voltooien
Kreeg u ook deze uitkomst?
var fibonacciNumbers = new List<int> {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);
}
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.
Gefeliciteerd
U hebt de interactieve zelfstudie over de lijst voltooid. Dat is de laatste inleiding tot 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 gaat u terug naar deze zelfstudies.
Meer informatie over .NET-verzamelingen vindt u in de volgende artikelen:
Is er een probleem met deze sectie? Als dit het geval is, kunt u ons feedback geven zodat we deze sectie kunnen verbeteren.