Nol indekslangan to’plamlar

RMAG news

C# da bir nechta to’plam(collection type) turlari nol indekslangan, ya’ni ularning qiymatiga indeks 0 dan boshlab murojat qilish mumkin. Yani arrayni yoki listni 0-chi indeksga murojat qilsak, bizga 1-chi element(qiymati)ni qaytaradi.

Misol:

var nums = new int[]{1,2,3,4,5};
Console.WriteLine(nums[0]);
// output –> 1

C# da nol indeksli to’plamlar ro’yxatidan bir shingil: array, List<T>, ArrayList va hokazolar kiradi.

Yuqorida ko’rganimizdek, bizda nums nomi bilan, 1 dan 5 gacha bolgan sonlar arrayi berilgan, va biz konsolga birinchi elementi(qiymatini)ni chiqarishimiz uchun nums[0] deb murojat qildik. Keyingi elementiga murojat qilish uchun esa nums[1] deyish kifoya, va shu zaynda davom etaveradi.

0 indeksli toplamlarni ohirgi elementiga(umumiy elementlar soni n ga teng bolsa) nums[n-1] qilib murojat qilinadi. Nima uchun aynan n-1?!
Buning sababi, yuqoridagi kodga yuzlansak, u yerda qiymatlarning umumiy soni 5 ga teng(n = 5), indeks bo’ylab sanalganda esa 4 ga teng (0,1,2,3,4). Agar nums[5] qilsak, indeks bo’yicha sanalganda 5-chi indeks 6-chi elementga to’g’ri keladi, bizda esa umumiy 5ta qiymatlar bor.

indekslar -> 0 | 1 | 2 | 3 | 4
qiymatlar-> 1 | 2 | 3 | 4 | 5

Misol:

var nums = new int[]{1,2,3,4,5};
int n = nums.Length; // n = 5,
Console.WriteLine(nums[n-1]);
// output –> 5

Bu kodda nums.Length(length -> uzunligi) bizga n yaniy qiymatlar sonini topishda yordam beradi. Yuqoridagi kodimizni yanda qisqartirsak boladi.

Misol:

var nums = new int[]{1,2,3,4,5};
Console.WriteLine(nums[nums.Length – 1]);
// output –> 5

Bazida shunday holatlar boladiki ohirgi elementga murojat qilyotkanimizda nums[nums.Length] -1 ni qo’shib ketish yoddan chiqishi mumkin, bu esa o’z vaqtida hatolikga olib keladi.
C# 13-chi versiyasidan boshlab yangi feature(xususiyat) kirib keldi uning nomini
Implicit index access -> Indeksga yashirin kirish deb nomlashdi, va bu xususiyatni ishlatish uchun esa ^(caret -> karet) aperatori bilan amalga oshirish mumkin. Bu feature xaqida ushbu -> link postimda tanishib chiqsangiz boladi.