Kollektsiyalar
Kollektsiyaga kiritish
Garchi C # tilida bitta turdagi ob’ektlar to‘plamini saqlaydigan massivlar mavjud bo‘lsa ham, ular bilan ishlash har doim ham qulay emas. Masalan, massiv belgilangan sondagi ob’ektlarni saqlaydi, biroq agar biz qancha ob’ektlar kerakligini oldindan bilmasak, u holda kollektsiyalarni qo‘llash qulay. Kollektsiyalarning yana bir imkoniyatlari shundan iboratki, ularning ayrimlari ma’lumotlarning standartli strukturalarini amalga oshiradi, masalan, turli maxsus vazifalarni hal etish uchun foydalanilishi mumkin bo‘lgan stek, navbat, lug‘at kabilar.
Kolleksiyalar sinflarining aksariyati System.Collections, System.Collections.Generic va System.Collections.Specialized (maxsus kolleksiyalar sinflari) nomlar fazosida tarkibidadir. Shuningdek, masalalarni parallel’ bajarishni ta’minlash va ko‘p potokli foydalanishni ta’minlash uchun System.Collections.Concurrent nomlar fazosidagi kollektsiyalar sinfi qo‘llaniladi
Barcha kolleksiyalarni yaratish uchun IEnumerator va IEnumerable interfeyslarini (va ularning umumlashtirilgan IEnumerator < T > va IEnumerable < T >) amalga oshirish asosi hisoblanadi. IEnumerator interfeysi kollektsiyani ketma-ket, masalan, foreach siklida tanlab olish imkoniyatiga ega boʻlgan sanab chiqish vositasini namoyish etadi. IEnumerable interfeysi esa o‘z usuli orqali ushbu interfeysni amalga oshiradigan barcha sinflarga ro‘yxatdan o‘tkazuvchini taqdim etadi. Shuning uchun IEnumerable(IEnumerable < T >) interfeysi barcha kolleksiyalar uchun asosiy va bazaviy hisoblanadi.
Ikki kollektsiyani yaratish va qo‘llashni ko‘rib chiqamiz:
using System;
using System.Collections;
using System.Collections.Generic;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
//umumiy bo‘lmagan kollektsiya ArrayList
ArrayList objectList = new ArrayList() { 1, 2, "string", 'c', 2.0f };
object obj = 45.8;
objectList.Add(obj);
objectList.Add("string2");
objectList.RemoveAt (0) ;//birinchi elementni olib tashlash
foreach (object o in objectList)
{
Console.WriteLine(o);
}
Console.WriteLine («Kollektsiya elementlarining umumiy soni: {0}», objectList.Count);
//umumlashtirilgan List kollektsiyasi
List < string > countries = New List < string > () {«Rossiya», «AQSh», «Buyuk Britaniya», «Xitoy»};
countries. Add (Fransiya);
countries. RemoveAt (1) ;//ikkinchi elementni olib tashlash
foreach (string s in countries)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
}
Bu erda ikkita kollektsiya foydalanilmoqda: umumlashtirilmagan – ArrayList va umumlashtirilgan – List. Ko‘plab kollektsiyalar elementlarni qo‘shishni qo‘llab-quvvatlaydi. Masalan, ushbu holatda qo‘shish Add usuli bilan amalga oshiriladi, biroq boshqa kollektsiyalar uchun usul nomi turli bo‘lishi mumkin. Shuningdek, ko‘plab kollektsiyalar o‘chirishni amalga oshiradi(mazkur misolda bu RemoveAt usuli yordamida amalga oshiriladi).
Count xossasi yordamida kollektsiyalardan elementlar sonini ko‘rib chiqish mumkin.
Kolleksiyalar IEnumerable/IEnumerable < T > interfeysini amalga oshirganligi sababli, ularning barchasi foreach siklida tanlashni qoʻllab-quvvatlaydi.
Foydalanishning aniq usul va usullari kollektsiyaning bir sinfidan ikkinchisiga turlicha bo‘lishi mumkin, biroq umumiy tamoyillar kollektsiyalarning barcha sinflari uchun bir xil bo‘ladi.
Do'stlaringiz bilan baham: |