C# Academy · Lektion

foreach-mönster och samlingsinitierare

Skriv säkra foreach-loopar över arrayer, listor och ordböcker och initiera samlingar kortfattat med syntax för samlingsinitierare.

Lektion 2 av 38 steg

foreach-mönster och samlingsinitierare är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 2 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 3 lektioner.

Översikt

Mål: Iterera säkert med foreach och skapa och fylla samlingar med samlingsinitierare.

  • foreach över arrayer och listor
  • foreach över dictionaries
  • Initierare för List<T> och Dictionary<K,V>

foreach över arrayer och listor

foreach är enkelt och säkert: det läser objekten ett i taget utan manuell indexering.

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    int[] nums = new int[] { 2, 4, 6 };
    int sum = 0;
    foreach (int n in nums) // no index to manage, safe bounds
    {
      sum = sum + n;
    }
    Console.WriteLine("Sum = " + sum);

    List<string> names = new List<string>();
    names.Add("Ada");
    names.Add("Alan");
    foreach (string s in names)
    {
      Console.WriteLine("Hi " + s);
    }
  }
}

Index med foreach

Om du behöver ett index med foreach kan du använda en liten räknarvariabel.

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    List<string> items = new List<string>();
    items.Add("apple");
    items.Add("banana");
    items.Add("cherry");

    int i = 0;
    foreach (string item in items)
    {
      Console.WriteLine("#" + i + ": " + item);
      i = i + 1; // manual index when needed
    }
  }
}

foreach över dictionary

Iteration över en dictionary ger KeyValuePair<K,V>; eller iterera endast över Keys/Values.

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    Dictionary<string, int> stock = new Dictionary<string, int>();
    stock["pen"] = 10;
    stock["book"] = 5;

    foreach (KeyValuePair<string, int> kv in stock)
    {
      Console.WriteLine(kv.Key + " -> " + kv.Value);
    }

    // Iterate keys or values only
    foreach (string k in stock.Keys) { Console.WriteLine("Key: " + k); }
    foreach (int v in stock.Values) { Console.WriteLine("Value: " + v); }
  }
}

List<T>-initierare

En samlingsinitierare skapar och fyller en lista i ett uttryck; den utökas till upprepade anrop till Add.

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    // Calls Add for each element under the hood
    List<string> fruits = new List<string> { "apple", "banana", "cherry" };
    foreach (string f in fruits)
    {
      Console.WriteLine(f);
    }
  }
}

Dictionary-initierare

En dictionary-initierare använder poster av typen { key, value }; detta utökas till anrop till Add(key, value).

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    // Each { key, value } becomes Add(key, value)
    Dictionary<string, int> scores = new Dictionary<string, int>
    {
      { "Ada", 95 },
      { "Alan", 90 }
    };

    // Show contents
    foreach (KeyValuePair<string, int> kv in scores)
    {
      Console.WriteLine(kv.Key + " = " + kv.Value);
    }
  }
}

Fördel med initierare

Snabb kontroll: Vilken är en viktig fördel med samlingsinitierare i C#?

Repetition

Repetition: Använd foreach för att iterera säkert över arrayer, listor och dictionaries. Föredra samlingsinitierare för att skapa och fylla samlingar på ett koncist sätt.

Gratis att börja

Lär dig C# med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
93
Lektioner
346

Vanliga frågor

Är lektionen ”foreach-mönster och samlingsinitierare” gratis?

Ja – hela texten till ”foreach-mönster och samlingsinitierare” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”foreach-mönster och samlingsinitierare”?

Skriv säkra foreach-loopar över arrayer, listor och ordböcker och initiera samlingar kortfattat med syntax för samlingsinitierare. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C# Academy?

Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 3.

Hur lång tid tar lektionen ”foreach-mönster och samlingsinitierare”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C# Academy-lektionen?

Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Arrayer, slicing, List och Dictionary
  2. foreach-mönster och samlingsinitierare
  3. Förhandsvisning av LINQ: Where, Select, OrderBy, Take/Skip och uppskjuten körning
← Tillbaka till C# Academy