Assosiatiivisten taulukoiden käyttö

C#:
Assosiatiivisten taulukoiden käyttö

Miten:

C#:ssa työskentelet assosiatiivisten taulukoiden kanssa käyttämällä Dictionary<TKey, TValue> -luokkaa. Tässä on nopea esimerkki, jolla pääset alkuun:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Luodaan sanakirja
        Dictionary<string, int> hedelmäkori = new Dictionary<string, int>();

        // Lisätään avain-arvo -pareja
        hedelmäkori.Add("Omenat", 5);
        hedelmäkori.Add("Appelsiinit", 10);

        // Arvon käyttö sen avaimen perusteella
        Console.WriteLine("Omenat: " + hedelmäkori["Omenat"]);
        
        // Arvon päivittäminen
        hedelmäkori["Omenat"] = 7;
        Console.WriteLine("Päivitetyt Omenat: " + hedelmäkori["Omenat"]);
        
        // Avain-arvo -parin poistaminen
        hedelmäkori.Remove("Appelsiinit");

        // Iterointi sanakirjan läpi
        foreach (var pari in hedelmäkori)
        {
            Console.WriteLine(pari.Key + ": " + pari.Value);
        }
    }
}

Esimerkkituloste:

Omenat: 5
Päivitetyt Omenat: 7
Omenat: 7

Tämä esimerkki esittelee sanakirjan luomista, elementtien lisäämistä, käyttöä, päivittämistä, poistamista ja niiden yli iterointia.

Syväsukellus

Assosiatiivisten taulukoiden konsepti palaa niiden käyttöön käsikirjoitusskripteissä, kuten Perl ja PHP, missä ne tarjoavat joustavuutta datan kokoelmien hallinnoinnissa. C#:ssa Dictionary<TKey, TValue> on de facto toteutus, joka esiteltiin .NET Framework 2.0:ssa. Se tallentaa tiedot hajautustaulukkoon, varmistaen tehokkaat hakutoiminnot, lisäykset ja poistot.

On kuitenkin huomionarvoista, että vaikka sanakirjat ovat erittäin monipuolisia, ne eivät aina välttämättä ole paras valintasi. Järjestettyjen kokoelmien ylläpitämiseksi saatat tutkia SortedDictionary<TKey, TValue> tai SortedList<TKey, TValue>, jotka tarjoavat järjestettyä järjestystä hitaamman lisäys- ja poisto-operaatioiden kustannuksella. Skenaarioissa, jotka vaativat säieturvallisuutta, ConcurrentDictionary<TKey, TValue> lisää ylikuormaa, mutta varmistaa turvallisen käytön useista säikeistä ilman manuaalista lukitusta.

Lopulta assosiatiivisen taulukon toteutuksen valinta C#:ssa riippuu erityistarpeistasi suhteessa järjestykseen, suorituskykyyn ja säieturvallisuuteen.