2. Umumlashmagan kolleksiyalar.
Umumlashmagan kolleksiyalar .NET Framework muhitining 1.0.
versiyasidan boshqalarida mavjud. Ular System.Collections nomidagi fazoda
aniqlanadi. Umumlashmagan kolleksiyalar ob'ektlarga havolalar bilan ishlaydigan
umumiy maqsadli ma'lumotlar tuzilmalari. Shunday qilib, ular
har qanday turdagi
ob'ektni manipulyatsiya
qilishga imkon beradi, garchi ular tiplashmagan bo'lsa. Bu
ularning afzalligi va ayni paytda kamchiligi hamdir. Umumlashgan kolleksiyalar
ob'ektlarga havolalar bilan ishlayotganligi sababli ular turli xil ma'lumotlarni
saqlashlari mumkin. Bu turli xil ob'ektlar kolleksiyaini manipulyatsiya
qilish yoki
kolleksiyada saqlanadigan ob'ektlarning turlari oldindan noma'lum bo'lgan hollarda
qulaydir. Biroq, agar kolleksiya muayyan turdagi ob'ektni saqlash uchun
mo'ljallangan bo'lsa, unda umumlashmagan kolleksiyalar umumlashgan
kolleksiyalarda taminlashi mumkin bo'lgan odatiy xavfsizlikni ta'minlamaydi.
Umumlashmagan kolleksiyalar ushbu interfeyslarni amalga
oshiradigan bir
qator interfeyslarda va sinflarda aniqlanadi. Ularning barchasi navbati bilan ko'rib
chiqiladi.
3. Umumlashmagan kolleksiyalarning interfeyslari.
System.Collections nomlar fazosida umumlashmagan kolleksiyalarning bir
qator interfeyslarini aniqladi. umumlashmagan kolleksiyalarni ko'rib chiqishni
interfeyslar
bilan boshlash kerak, chunki ular umumlashmagan kolleksiyalarning
barcha sinflari uchun keng tarqalgan funksiyalarni aniqlaydi. Umumlashmagan
kolleksiyalar uchun qo'llab-quvvatlovchi interfeyslar 25.1 - jadvalda keltirilgan.
Ushbu interfeyslarning har biri batafsil tavsiflanadi.
25.1-jadval. Umumlashmagan kolleksiyalarning interfeyslari.
Interfeys
Tavsif
ICollection
Barcha umumlashmagan kolleksiyalar
ega bo'lishi kerak bo'lgan elementlarni
belgilaydi
IComparer
Kolleksiyada saqlangan ob`ektlarni
taqqoslash uchun
Compare()
metodini
aniqlaydi
IDictionary
"Kalit-qiymat"
juftlaridan tashkil topgan
kolleksiyani aniqlaydi
IDictionaryEnumerator
IDictionary
interfeysini amalga
oshiruvchi kolleksiya uchun ro'yxatni
belgilaydi
IEnumerable
Getenumerator()
metodini aniqlaydi,
kolleksiyaning har
qanday klassi uchun
ro'yxatini taqdim
etadi
IEnumerator
Kolleksiya tarkibini navbati bilan olish
imkonini beruvchi metodlarni taqdim
etadi
IEqualityComparer
Ikkita ob'ektni solishtiradi tenglik
shartiga
tekshiradi
IHashCodeProvider
Bu eskirgan hisoblanadi. Buning
o'rniga, IEqualityComparer
interfeysidan foydalaniladi
IList
Indeksator yordamida kirish mumkin
bo'lgan kolleksiyani aniqlaydi
IStructuralComparable
Strukturaviy taqqoslash uchun
ishlatiladigan
CompareTo()
metodini
aniqlaydi
IStructuralEquatable
Tizimli va
mos yozuvlar tengligini
aniqlash uchun ishlatiladigan
Equals()
metodini aniqlaydi. Bundan tashqari,
GetHashCode()
metodini belgilaydi
Foydalanildi:
1. Герберт Шилдт. С# 4.0: полное руководство.
Пер. с англ. —
М.: ООО "И.Д.
Вильяме", 2011.