C# To’plamlar (Kolleksiyalar)? C# To’plamlar (Kolleksiyalar)?
Bajararuvchi: Baxtiyorov Diyorbek
C# da bir xil turdagi ma'lumotlar to'plamini saqlash uchun massivlardan foydalanishingiz mumkin. Ammo ular bilan ishlash har doim ham qulay emas, chunki ular qat'iy o'lchamga ega va ko'pincha massivga qanday o'lcham kerakligini taxmin qilish qiyin. Ushbu muammolarni hal qilish uchun C# da to'plamlar mavjud. Ular sizning o'lchamingizni dinamik ravishda o'zgartirishga imkon beradi. Ular shuningdek, ulardan ba'zilari ro'yxat, xesh-jadval, stek, navbat kabi standart ma'lumotlar tuzilmalarini tayyor amalga oshirishlari bilan ham qulaydir. Barcha to'plamlar bir nechta nom maydonlarida joylashgan: - System.To'plamlar oddiy, umumiy bo'lmagan to'plamlardir.
- System.Collections.Generic - umumiy to'plamlar.
- System.Collections.Ixtisoslashgan - Maxsus to'plamlar.
- System.Collections.Concurrent - ko'p oqimli muhitda ishlash uchun to'plamlar.
System. Collections; - System. Collections;
- Tizim.Toʻplamlar.Umumiy.
- Birinchisi , System.Collections Object tipidagi ob'ektlarni saqlash uchun ma'lumotlar tuzilmalarini taqdim etadi . Ushbu yechim ikkita asosiy muammoga ega - ishlash va turdagi xavfsizlik. Hozirda System.Collections dan sinf ob'ektlaridan foydalanish tavsiya etilmaydi .
- Yuqoridagi muammolarni hal qilish uchun Microsoft umumiy turlarga ega to'plamlarni ishlab chiqdi (ular generiklar deb ham ataladi), ular System.Collections.Generic nom maydonida joylashgan . Ularning mohiyati shundan iboratki, siz nafaqat List sinfining ob'ektini yaratasiz , balki unda qanday turdagi ob'ektlar saqlanishini ham aniqlaysiz, bu quyidagicha amalga oshiriladi: List , bu erda T int, string, ikki barobar yoki o'z sinfingizdan bir nechtasi.
- Ushbu dars doirasida biz umumiy tiplarning xususiyatlariga batafsil to'xtalib o'tmaymiz, hozirda siz ularni haqiqiy ma'lumotlar turlari uchun taxalluslar deb hisoblashingiz mumkin
Oldingi maqolalardan birida biz C# da massivlarni qanday yaratish bilan tanishgan edik . Shu bilan birga, ibtidoiy ma'lumotlar turlaridan farqli o'laroq, masalan: satrlar, raqamlar, belgilar; massivlar oldindan belgilangan raqamga ega bo'lgan bunday ob'ektlar guruhini qayta ishlashga imkon beradi. Massivlar ma'lum o'lchamdagi to'plam bilan ishlash uchun foydalidir. Ammo ko'pincha biz qancha elementlarni to'plashimiz va ishlatishimiz kerakligini bilmaymiz. Bunday vaziyatlarda biz kollektsiyalardan foydalanganimiz ma'qul. Bugungi maqolada biz to'plam turi, aniqrog'i C# da ro'yxat bilan tanishamiz . - Oldingi maqolalardan birida biz C# da massivlarni qanday yaratish bilan tanishgan edik . Shu bilan birga, ibtidoiy ma'lumotlar turlaridan farqli o'laroq, masalan: satrlar, raqamlar, belgilar; massivlar oldindan belgilangan raqamga ega bo'lgan bunday ob'ektlar guruhini qayta ishlashga imkon beradi. Massivlar ma'lum o'lchamdagi to'plam bilan ishlash uchun foydalidir. Ammo ko'pincha biz qancha elementlarni to'plashimiz va ishlatishimiz kerakligini bilmaymiz. Bunday vaziyatlarda biz kollektsiyalardan foydalanganimiz ma'qul. Bugungi maqolada biz to'plam turi, aniqrog'i C# da ro'yxat bilan tanishamiz .
- Ismlar maydoni
- To'plamlar bilan ishlash uchun faylimiz boshiga System.Collections.Generic nom maydonini kiritishimiz kerak
- using System.Collections.Generic;
- Kalleksiya metodiga misolar
List years = new List { 2020, 2019, 2018, 2017, 2016 }; //foreach foreach(var year in years) { Console.WriteLine(year.ToString()); } var day = daysOfTheWeek[3]; //"Thu" // Add() List daysOfTheWeek = new List (); daysOfTheWeek.Add("Sun"); daysOfTheWeek.Add("Mon"); daysOfTheWeek.Add("Tue"); daysOfTheWeek.Add("Wed"); daysOfTheWeek.Add("Thu"); daysOfTheWeek.Add("Fri"); daysOfTheWeek.Add("Sat"); - List years = new List { 2020, 2019, 2018, 2017, 2016 }; //foreach foreach(var year in years) { Console.WriteLine(year.ToString()); } var day = daysOfTheWeek[3]; //"Thu" // Add() List daysOfTheWeek = new List (); daysOfTheWeek.Add("Sun"); daysOfTheWeek.Add("Mon"); daysOfTheWeek.Add("Tue"); daysOfTheWeek.Add("Wed"); daysOfTheWeek.Add("Thu"); daysOfTheWeek.Add("Fri"); daysOfTheWeek.Add("Sat");
- Ro`yhat kalleksiya misol
- List names = new List(); names.Add("test name"); names.Add("second name"); names.Add("third name") bool exists = names.Contains("test name"); Console.WriteLine(exists); // True List aFewNames = names.GetRange(0, 2); names.Insert(2, "second and a half name"); int index = names.IndexOf("test name"); Console.WriteLine(index); // 0 names.Remove("test name"); names.Clear();
To`plamlar yani kalleksiyalar bilan ishlash bizga dasturlash oladida yangi hodisa va boshqa narsalarni mukamalroq ko`rishni o`rgatadi - To`plamlar yani kalleksiyalar bilan ishlash bizga dasturlash oladida yangi hodisa va boshqa narsalarni mukamalroq ko`rishni o`rgatadi
- Zero dasturlash o`zi abstrak narsa
Do'stlaringiz bilan baham: |