DEV Community

Farkhodbek Kamolov
Farkhodbek Kamolov

Posted on

Nol indekslangan to'plamlar

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay