Utilizzo di array associativi

C#:
Utilizzo di array associativi

Come fare:

In C#, lavori con gli array associativi usando la classe Dictionary<TKey, TValue>. Ecco un esempio rapido per iniziare:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Creazione di un dizionario
        Dictionary<string, int> cestoDiFrutta = new Dictionary<string, int>();

        // Aggiunta di coppie chiave-valore
        cestoDiFrutta.Add("Mele", 5);
        cestoDiFrutta.Add("Arance", 10);

        // Accesso a un valore usando la sua chiave
        Console.WriteLine("Mele: " + cestoDiFrutta["Mele"]);
        
        // Aggiornamento di un valore
        cestoDiFrutta["Mele"] = 7;
        Console.WriteLine("Mele aggiornate: " + cestoDiFrutta["Mele"]);
        
        // Rimozione di una coppia chiave-valore
        cestoDiFrutta.Remove("Arance");

        // Iterazione sul dizionario
        foreach (var coppia in cestoDiFrutta)
        {
            Console.WriteLine(coppia.Key + ": " + coppia.Value);
        }
    }
}

Output dell’esempio:

Mele: 5
Mele aggiornate: 7
Mele: 7

Questo esempio mostra la creazione di un dizionario, l’aggiunta, l’accesso, l’aggiornamento e la rimozione degli elementi, e l’iterazione su di esso.

Approfondimento

Il concetto di array associativi risale al loro utilizzo nei linguaggi di scripting come Perl e PHP, dove offrono flessibilità nella gestione delle collezioni di dati. In C#, Dictionary<TKey, TValue> è l’implementazione de facto, introdotta nel .NET Framework 2.0. Memorizza i dati in una tabella hash, assicurando ricerche, aggiunte e cancellazioni efficienti.

Tuttavia, vale la pena notare che, sebbene i dizionari siano incredibilmente versatili, potrebbero non essere sempre la scelta migliore. Per mantenere collezioni ordinate, potresti esaminare SortedDictionary<TKey, TValue> o SortedList<TKey, TValue>, che offrono un ordine ordinato al costo di operazioni di inserimento e rimozione più lente. Per scenari che richiedono sicurezza nei thread, ConcurrentDictionary<TKey, TValue> aggiunge sovraccarico ma assicura l’accesso sicuro da più thread senza blocchi manuali.

In definitiva, la scelta di un’implementazione di array associativo in C# dipende dalle tue esigenze specifiche riguardo all’ordine, alla performance e alla sicurezza dei thread.