Skip to content

Речник

Класа Dictionary<TKey,TValue> представља генеричку класу дефинисану у именском простору System.Collection.Generic. Користи се за чување парова података кључ/вредност. У односу на класу Hashtable која није генеричка, рад са овом класом је сличан, али су предности генеричких класа очигледне. Креирање речника и рад са методама речника Dictionary<TKey,TValue> демонстрираћемо у следећем примеру:

using System;
using System.Collections.Generic;

class RadSaRecnikom
{
    static void Main(string[] args)
    {
        // Креирај речник "sifre"
        Dictionary<int, string> sifre = new Dictionary<int, string>();

        // Додај шест парова кључ/вредност у речник (РАЗЛИЧИТИ КЉУЧЕВИ!)
        sifre.Add(20102004, "Ucenik 1");
        sifre.Add(58968541, "Ucenik 2");
        sifre.Add(15795425, "Ucenik 3");
        sifre.Add(35987894, "Ucenik 4");
        sifre.Add(85485795, "Ucenik 5");
        sifre.Add(75395178, "Ucenik 6");

        // Испиши све парове из речника
        foreach (KeyValuePair<int, string> parovi in sifre)
            Console.WriteLine(parovi);

        // Испиши све кључеве из речника
        foreach (KeyValuePair<int, string> parovi in sifre)
            Console.WriteLine(parovi.Key);

        // Испиши све вредности из речника
        foreach (KeyValuePair<int, string> parovi in sifre)
            Console.WriteLine(parovi.Value);

        // Ако додате нови пар у речник са кључем који већ постоји метода ће бацити изузетак
        try
        {
            sifre.Add(20102004, "Ucenik 7");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("Ključ je već upotrebljen");
        }

        // Ако не постоји пар са кључем 46598732 додај пар 46598732/"Ucenik 7" и испиши све парове из речника
        if (!sifre.ContainsKey(46598732))
            sifre.Add(46598732, "Ucenik 7");
        else
            Console.WriteLine("Ključ je već upotrebljen");
        foreach (KeyValuePair<int, string> parovi in sifre)
            Console.WriteLine(parovi);

        // Уколико постоји пар са кључем 46598732 испиши вредност пара
        string vrednost = "";
        if (sifre.TryGetValue(46598732, out vrednost))
            Console.WriteLine(vrednost);
        else
            Console.WriteLine("Ključ nije pronađen");

        // Промени вредност за кључ 46598732 у "Ucenik X" и испиши све парове из речника
        sifre[46598732] = "Ucenik X";
        foreach (KeyValuePair<int, string> parovi in sifre)
            Console.WriteLine(parovi);

        // Обриши пар чији је кључ 46598732 и испиши све парове из речника
        sifre.Remove(46598732);
    }
}

Документација за генеричку класу речник:

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.0