5.5. Szótár
A szótár segítségével elempárokat tárolhatunk és kezelhetünk.
Az elempárok közül az egyik a kulcs, amely azonosítja az elempárt, a másik pedig az érték. Minden kulcsnak egyedinek kell lenni.
A szótár olyan, mint egy lista, ahol az elemek indexe tetszőleges típusú lehet, akár szöveg is.
A szótár deklarációja:
Műveletek szótárelemekkel:
- érték hozzáadása kulccsal:
szotarnev.Add(kulcs, érték) - megadja, hogy szerepel-e egy kulcs a szótárban:
szotarnev.ContainsKey(kulcs) - megadja, hogy szerepel-e egy érték a szótárban:
szotarnev.ContainsValue(ertek) - eltávolít egy elemet a szótárból:
szotarnev.Remove(kulcs) - a szótár elemeinek törlése:
szotarnev.Clear()
A szótárat foreach ciklussal lehet bejárni és a szótárból KeyValuePair (kulcs-érték pár) típusú elemeket kapunk. Ezek Key és Value mezői adják a megfelelő kulcs és érték párokat.
53. feladat
Hozzunk létre [0-9]-ből véletlenszerűen egész számokat és helyezzük el egy 15 elemű tömbben!
Hozzunk létre egy szótárt, amelyben a véletlenszerűen előállított szám lesz a kulcs, a számok darabszáma pedig az érték! Írjuk ki a 15 számot egymás mellé, majd alá a szótár elemeinek kulcsát és az értékeket, azaz a számokat és a darabszámokat!
Név: szótár
Megoldás:
using System;
using System.Collections.Generic;
namespace SzotarPélda
{
class Program
{
static void Main(string[] args)
{
int[] szamok = new int[15];
Random vsz = new Random();
for (int i = 0; i < 15; i++)
{
szamok[i] = vsz.Next(10);
Console.Write("{0,5}", szamok[i]);
}
Console.WriteLine();
Dictionary<int, int> szamokDarab = new Dictionary<int, int>();
for (int i = 0; i < szamok.Length; i++)
{
if (szamokDarab.ContainsKey(szamok[i]))
{
szamokDarab[szamok[i]]++;
}
else
{
szamokDarab.Add(szamok[i], 1);
}
}
foreach (KeyValuePair<int, int> elem in szamokDarab)
{
Console.WriteLine(" A szám: {0} ennyi van belőle: {1} db", Convert.ToString(elem.Key), elem.Value);
}
Console.ReadKey();
}
}
}