Класа 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);
}
}
Документација за генеричку класу речник: