Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här introduktionskursen ger en introduktion till C#-språket och grunderna i klassen.
I den här självstudien lär du dig C# interaktivt med hjälp av webbläsaren för att skriva C#-kod och se resultatet av kompilering och körning av koden. Den innehåller en serie lektioner som skapar, ändrar och utforskar samlingar och matriser. Du arbetar främst med List<T> klassen.
Ett exempel på en grundläggande lista
Tips/Råd
När ett kodfragmentblock innehåller knappen "Kör" öppnas det interaktiva fönstret eller ersätter den befintliga koden i det interaktiva fönstret. När kodfragmentet inte innehåller någon "Kör"-knapp kan du kopiera koden och lägga till den i det aktuella interaktiva fönstret.
Kör följande kod i det interaktiva fönstret. Ersätt <name>
med ditt namn och välj Kör:
List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Du har skapat en lista med strängar, lagt till tre namn i listan och skrivit ut namnen i alla CAPS. Du använder begrepp som du lärde dig i tidigare självstudier för att loopa igenom listan.
Koden för att visa namn använder funktionen för stränginterpolation . När du föregår en string
med $
tecknet kan du bädda in C#-kod i strängdeklarationen. Den faktiska strängen ersätter C#-koden med det värde den genererar. I det här exemplet ersätts {name.ToUpper()}
med varje namn, konverterat till versaler, eftersom du har anropat String.ToUpper metoden.
Vi fortsätter att utforska.
Ändra listinnehåll
Samlingen du skapade använder typen List<T> . Den här typen lagrar sekvenser av element. Du anger typ av element mellan vinkelparenteserna.
En viktig aspekt av den här List<T> typen är att den kan växa eller krympa, så att du kan lägga till eller ta bort element. Du kan se resultatet genom att ändra innehållet efter att du har visat det. Lägg till följande kod efter den kod som du redan skrev (loopen som skriver ut innehållet):
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Du har lagt till ytterligare två namn i slutet av listan. Du har också tagit bort en. Utdata från det här kodblocket visar det första innehållet och skriver sedan ut en tom rad och det nya innehållet.
Det List<T> gör att du kan referera till enskilda objekt efter index också. Du kommer åt objekt med hjälp av [
token och ]
. Lägg till följande kod efter det du redan skrev och prova den:
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
Du har inte behörighet att komma förbi slutet av listan. Du kan kontrollera hur länge listan använder Count egenskapen. Lägg till följande kod:
Console.WriteLine($"The list has {names.Count} people in it");
Välj Kör igen för att se resultatet. I C# börjar indexen vid 0, så det största giltiga indexet är ett mindre än antalet objekt i listan.
Sök- och sorteringslistor
Våra exempel använder relativt små listor, men dina program kan ofta skapa listor med många fler element, ibland numrering i tusental. Om du vill hitta element i dessa större samlingar måste du söka i listan efter olika objekt. Metoden IndexOf söker efter ett objekt och returnerar objektets index. Om objektet inte finns i listan IndexOf
returnerar -1
. Prova det för att se hur det fungerar. Lägg till följande kod efter det du har skrivit hittills:
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}");
}
Du kanske inte vet om ett objekt finns i listan, så du bör alltid kontrollera indexet som returneras av IndexOf. Om det är -1
hittades inte objektet.
Objekten i listan kan också sorteras. Metoden Sort sorterar alla objekt i listan i sin normala ordning (alfabetiskt för strängar). Lägg till den här koden och kör igen:
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Listor av andra typer
Du har använt string
typen i listor hittills. Nu ska vi göra en List<T> med en annan typ. Nu ska vi skapa en uppsättning tal. Ta bort koden som du har skrivit hittills och ersätt den med följande kod:
List<int> fibonacciNumbers = [1, 1];
Då skapas en lista med heltal och de två första heltalen anges till värdet 1. Fibonacci-sekvensen, en sekvens med tal, börjar med två 1:er. Varje nästa Fibonacci-nummer hittas genom att ta summan av de föregående två talen. Lägg till den här koden:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach (var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Tryck på Kör för att se resultatet.
Utmaning
Se om du kan sammanställa några av begreppen från den här och tidigare lektionerna. Expandera det du har byggt hittills med Fibonacci-nummer. Försök att skriva koden för att generera de första 20 talen i sekvensen. (Som ett tips är det 20:e Fibonacci-numret 6765.)
Kom du på något som liknar det här?
Med varje iteration av loopen tar du de två sista heltalen i listan, summerar dem och lägger till det värdet i listan. Loopen upprepas tills du har lagt till 20 objekt i listan.
Du har slutfört den interaktiva handledningen om listor, den sista interaktiva handledningen för att lära sig C#. Du kan besöka .NET-webbplatsen för att ladda ned .NET SDK, skapa ett projekt på datorn och fortsätta koda. Avsnittet "Nästa steg" tar dig tillbaka till de här självstudierna. Du kan också fortsätta med självstudiekursen Utforska objektorienterad programmering med klasser och objekt .
Du kan läsa mer om .NET-samlingar i följande artiklar: