Використання асоціативних масивів

C#:
Використання асоціативних масивів

Як:

У C#, ви працюєте з асоціативними масивами за допомогою класу Dictionary<TKey, TValue>. Ось швидкий приклад для початку:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Створення словника
        Dictionary<string, int> fruitBasket = new Dictionary<string, int>();

        // Додавання пар ключ-значення
        fruitBasket.Add("Apples", 5);
        fruitBasket.Add("Oranges", 10);

        // Доступ до значення за допомогою ключа
        Console.WriteLine("Apples: " + fruitBasket["Apples"]);
        
        // Оновлення значення
        fruitBasket["Apples"] = 7;
        Console.WriteLine("Updated Apples: " + fruitBasket["Apples"]);
        
        // Видалення пари ключ-значення
        fruitBasket.Remove("Oranges");

        // Ітерація через словник
        foreach (var pair in fruitBasket)
        {
            Console.WriteLine(pair.Key + ": " + pair.Value);
        }
    }
}

Приклад виводу:

Apples: 5
Updated Apples: 7
Apples: 7

Цей приклад демонструє створення словника, додавання, доступ, оновлення та видалення елементів та ітерацію через нього.

Поглиблено

Концепція асоціативних масивів сягає їх використання в скриптових мовах, як-от Perl та PHP, де вони пропонують гнучкість у керуванні колекціями даних. У C#, Dictionary<TKey, TValue> є фактичною реалізацією, введеною в .NET Framework 2.0. Він зберігає дані в хеш-таблиці, забезпечуючи ефективні пошуки, додавання та видалення.

Однак варто зазначити, що хоча словники надзвичайно універсальні, вони можуть не завжди бути найкращим вибором. Для утримання впорядкованих колекцій можна розглянути SortedDictionary<TKey, TValue> або SortedList<TKey, TValue>, які пропонують сортований порядок за ціною повільніших операцій вставки та видалення. Для сценаріїв, що вимагають потокової безпеки, ConcurrentDictionary<TKey, TValue> додає накладні витрати, але забезпечує безпечний доступ з кількох потоків без ручного блокування.

Врешті-решт, вибір реалізації асоціативного масиву в C# залежить від ваших конкретних потреб стосовно порядку, продуктивності та безпеки потоків.