Sobes.tech
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>.