Junior — Middle
Фарқият дар байни намудҳои гуногуни интерфейси коллексия чӣ гуна аст?
sobes.tech AI
Ҷавоб аз AI
Дар C# коллексияи интерфейсҳо муайян мекунанд шартномаҳои гуногун барои кор бо маҷмӯаҳои додаҳо, ва фарқияти онҳо дар функсионалият ва мақсад аст:
- IEnumerable<T> — интерфейси асосӣ барои гузаштан дар коллексия бо истифода аз foreach. Танҳо имкон медиҳад, ки унсурҳоро як ба як хонед.
- ICollection<T> — васеъкунӣ аз IEnumerable<T>, илова мекунад усулҳо барои тағир додани коллексия (Add, Remove), хосиятҳои Count ва IsReadOnly.
- IList<T> — васеъкунӣ аз ICollection<T>, илова мекунад индексатор барои дастрасӣ ба унсурҳо тавассути индекс, усулҳо барои ворид кардан ва хориҷ кардан тавассути индекс.
- IDictionary<TKey, TValue> — коллексияи ҷуфтҳои калид-арзишро намояндагӣ мекунад, ки дар он дастрасӣ ба унсурҳо тавассути калид амалӣ мешавад.
Аз ин рӯ, интихоби интерфейс ба амалҳои зарурӣ вобаста аст: агар танҳо гузаштан лозим бошад — IEnumerable<T>, агар тағирот ва ҳисоб кардан лозим бошад — ICollection<T>, агар дастрасӣ тавассути индекс зарур бошад — IList<T>, агар бо калидҳо кор кардан лозим бошад — IDictionary<TKey, TValue>.