Bruke associative tabeller

C#:
Bruke associative tabeller

Hvordan:

I C# jobber du med assosiative tabeller ved å bruke Dictionary<TKey, TValue>-klassen. Her er et raskt eksempel for å få deg i gang:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Oppretter en ordbok
        Dictionary<string, int> fruktkurv = new Dictionary<string, int>();

        // Legger til nøkkel-verdi par
        fruktkurv.Add("Epler", 5);
        fruktkurv.Add("Appelsiner", 10);

        // Aksesserer en verdi ved hjelp av nøkkelen
        Console.WriteLine("Epler: " + fruktkurv["Epler"]);
        
        // Oppdaterer en verdi
        fruktkurv["Epler"] = 7;
        Console.WriteLine("Oppdaterte Epler: " + fruktkurv["Epler"]);
        
        // Fjerner et nøkkel-verdi par
        fruktkurv.Remove("Appelsiner");

        // Itererer over ordboken
        foreach (var par in fruktkurv)
        {
            Console.WriteLine(par.Key + ": " + par.Value);
        }
    }
}

Eksempel på utskrift:

Epler: 5
Oppdaterte Epler: 7
Epler: 7

Dette eksempelet viser oppretting av en ordbok, tillegging, tilgang, oppdatering og fjerning av elementer, og iterering over den.

Dypdykk

Konseptet med assosiative tabeller går tilbake til deres bruk i skriptspråk som Perl og PHP, hvor de tilbyr fleksibilitet i håndtering av datakolleksjoner. I C#, er Dictionary<TKey, TValue> den de facto implementasjonen, introdusert i .NET Framework 2.0. Det lagrer data i en hashtabell, som sikrer effektive oppslag, tillegg og slettinger.

Det er imidlertid verdt å merke seg at mens ordbøker er utrolig allsidige, kan de ikke alltid være ditt beste valg. For å opprettholde ordnede samlinger, kan du se på SortedDictionary<TKey, TValue> eller SortedList<TKey, TValue>, som tilbyr sortert rekkefølge på bekostning av langsommere innsettings- og fjerningsoperasjoner. For scenarioer som krever trådsikkerhet, legger ConcurrentDictionary<TKey, TValue> til overhead, men sikrer trygg tilgang fra flere tråder uten manuell låsing.

Til syvende og sist avhenger valget av en implementasjon av assosiative tabeller i C# på dine spesifikke behov med hensyn til orden, ytelse, og trådsikkerhet.