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.
Top comments (0)