Kihagyás

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:

Dictionary<tipuskulcs, tipusertek> szotarnev = new Dictionary<tipuskulcs, tipusertek>();

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();
        }
    }
}