Тарзии структураҳои додаҳо Dictionary ва HashSet дар бораи истифода ва сохтори дохилии онҳо чӣ гуна фарқ мекунанд?
sobes.tech AI
Ҷавоб аз AI
Dictionary ва HashSet дар C# структураҳои маълумот мебошанд, ки асосан дар рӯйхати хештаблиҳо асос ёфтаанд, аммо бо мақсадҳо ва сохторҳои гуногун:
-
Dictionary<TKey, TValue> маҷмӯаи ҷуфтҳои калид-арзиш мебошад. Имкон медиҳад, ки арзишро бо истифода аз калиди беназир зуд пайдо кунед. Дар дохили он истифодаи хешкунии калидҳо барои дастрасии зудро мекунад.
-
HashSet<T> маҷмӯаи уник ё элементҳои бидуни ҷуфтҳои калид-арзиш мебошад. Барои нигоҳ доштани маҷмӯаи объектҳои беназир ва барои ҷустуҷӯ, илова кардан ё хориҷ кардани зуд истифода мешавад.
Тафовутҳои асосӣ:
- Dictionary ҷуфтҳоро нигоҳ медорад, HashSet танҳо калидҳо (элементҳо).
- Dictionary имкон медиҳад, ки арзишро бо калид гиред, HashSet санҷиш мекунад, ки оё элемент мавҷуд аст ё не.
Масал:
var dict = new Dictionary<int, string>();
dict[1] = "як";
var set = new HashSet<int>();
set.Add(1);
bool hasKey = dict.ContainsKey(1); // true
bool hasElement = set.Contains(1); // true
Аз ин рӯ, вақте ки лозим аст, ки калид бо арзиш пайванд шавад, Dictionary-ро интихоб кунед, ва вақте ки муҳим аст, ки ягонагӣ ва ҷустуҷӯи зуд дошта бошед, HashSet-ро интихоб кунед.