A szótár – Dictionary - adatszerkezet
A szótár elempárok tárolására szolgál, melyek közül egyik a
kulcs, amely azonosítja az elempárt, másik az érték, minden kulcs egyedi.
Gyakorlatilag a szótár úgy viselkedik, mint egy lista, de az
elemek indexe itt tetszőleges típusú lehet (pl.: szöveg).
●
Fő metódusai:
o
void Add( TKey key, TValue value ): a value
érték hozzáadása key kulccsal
o
bool ContainsKey( TKey key ): megadja, hogy
szerepel-e egy kulcs a szótárban
o
bool ContainsValue( TValue value ): megadja,
hogy szerepel-e egy érték a szótárban
o
bool Remove( TKey key ): eltávolít egy elemet a
szótárból, a visszatérési érték a művelet sikerességét jelzi
o
int Count { get; }: az elemek (kulcsok) száma
o
void Clear(): szótár kiürítése
●
A szótár elemei a [] operátorral érhetőek el.
● A
szótárat foreach ciklussal lehet végig olvasni, amellyel a szótárból KeyValuePair<TKey,
TVaule> típusú elemeket kapunk. Ezek Key és Value mezői adják a megfelelő
kulcs és érték párokat.
Mintaprogram (megkaptad):
//Egy 20 elemű tömb előállítása véletlen számokkal 0..9 intervallumban
int[] szamok = new int[20];
Random rnd = new Random();
for (int i = 0; i < 20; i++)
{
szamok[i] = rnd.Next(10);
}
//Szótár létrehozása
Dictionary<int, int> szamokSzama = new Dictionary<int, int>(); //vagy a jobb oldal: new();
//Megszámoljuk, hogy hányszor fordul elő egy adott szám a tömbben
for (int i = 0; i < szamok.Length; i++)
{
if (szamokSzama.ContainsKey(szamok[i]))
{
szamokSzama[szamok[i]]++;
}
else
{
szamokSzama.Add(szamok[i], 1);
}
}
//Kiíratjuk melyik számból hány volt a tömbben
foreach (var elem in szamokSzama)
//pontosabban: (KeyValuePair<int,
int> elem in szamokSzama)
{
Console.WriteLine($"{elem.Key}: {elem.Value} db");
}
forrás:
https://info.aszevgim.hu/doku/adatstrukturak.pdf
További
hasznos források:
https://csharptutorial.hu/docs/hellovilag-hellocsharp/6-adatstrukturak/asszociativ-tomb/
https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=net-8.0