Tipe Index dan Operator ^
Referensikan elemen dari akhir koleksi.
Tipe Index dan Operator ^ adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Mengenal Tipe Index
C# memberi Anda tipe khusus System.Index untuk mendeskripsikan posisi di dalam suatu urutan. Tidak seperti int biasa, sebuah Index dapat merepresentasikan posisi yang dihitung dari akhir koleksi, bukan hanya dari awal.
Hal ini membuat kode seperti "ambil elemen terakhir" menjadi ekspresif dan aman.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Index first = 0;
Console.WriteLine(numbers[first]); // 10Operator ^ (dari akhir)
Operator topi ^ membentuk sebuah Index yang menghitung posisi dari akhir. ^1 berarti elemen terakhir, ^2 berarti elemen kedua dari terakhir, dan seterusnya.
Perhatikan bahwa ^1 adalah indeks valid terakhir, sedangkan ^0 sama dengan Length dan berada satu posisi setelah akhir.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers[^1]); // 50 (last)
Console.WriteLine(numbers[^2]); // 40Index sebagai Nilai Kelas Satu
Sebuah Index adalah nilai nyata yang dapat Anda simpan dalam variabel, teruskan ke metode, dan gunakan kembali. Dengan demikian, posisi terpisah dari koleksi.
using System;
int[] data = { 1, 2, 3, 4, 5 };
Index last = ^1;
Index secondLast = ^2;
Console.WriteLine(data[last]); // 5
Console.WriteLine(data[secondLast]); // 4IsFromEnd dan Nilai
Setiap Index menyediakan dua properti: Value (ofset bilangan bulat) dan IsFromEnd (menunjukkan apakah indeks tersebut dibuat dengan ^).
using System;
Index fromStart = 2;
Index fromEnd = ^2;
Console.WriteLine(fromStart.Value + " " + fromStart.IsFromEnd); // 2 False
Console.WriteLine(fromEnd.Value + " " + fromEnd.IsFromEnd); // 2 TrueGetOffset Menentukan Posisi
Indeks dari akhir baru bermakna setelah Anda mengetahui panjang koleksi. Index.GetOffset(length) mengubahnya menjadi ofset konkret berbasis 0.
using System;
Index fromEnd = ^1;
int length = 5;
int offset = fromEnd.GetOffset(length);
Console.WriteLine(offset); // 4^0 Berada Satu Posisi Setelah Akhir
Karena ^0 diselesaikan menjadi Length, penggunaan indeks ini akan melempar pengecualian. Indeks ini hanya berguna sebagai batas atas eksklusif suatu rentang, yang akan Anda lihat pada pelajaran berikutnya.
using System;
int[] data = { 1, 2, 3 };
try {
Console.WriteLine(data[^0]); // out of range!
} catch (IndexOutOfRangeException) {
Console.WriteLine("^0 is past the end");
}Index Bekerja pada Banyak Koleksi
Tipe apa pun yang memiliki pengindeks serta properti Length atau Count (dengan dukungan yang sesuai) dapat menggunakan Index. Larik, string, dan Span<T> dapat langsung menggunakannya.
using System;
string word = "Coddy";
Console.WriteLine(word[^1]); // y
Console.WriteLine(word[^5]); // CMenghitung Index Secara Dinamis
Anda dapat membuat sebuah Index dari bilangan bulat saat runtime dengan menggunakan operator ^ pada variabel.
using System;
int[] data = { 5, 10, 15, 20 };
int n = 2;
Index idx = ^n; // ^ works on variables too
Console.WriteLine(data[idx]); // 15Index vs int Biasa
int biasa selalu menghitung dari awal. Index menambahkan kemampuan menghitung dari akhir, tetapi tetap dikonversi secara implisit dari int, sehingga kode yang sudah ada tetap berfungsi.
using System;
Index a = 1; // implicit from int
Index b = ^1; // from end
Console.WriteLine(a.IsFromEnd); // False
Console.WriteLine(b.IsFromEnd); // TrueMenghindari Kesalahan Off-by-One
Untuk mencapai elemen terakhir, sebelumnya Anda harus membaca arr[arr.Length - 1]. Dengan ^1, maksudnya dinyatakan secara jelas dan tidak ada aritmetika yang dapat salah.
using System;
int[] scores = { 88, 92, 79, 95 };
Console.WriteLine(scores[scores.Length - 1]); // old way: 95
Console.WriteLine(scores[^1]); // new way: 95Index dalam Kode Nyata
Berikut fungsi pembantu kecil yang mengembalikan item terakhir dari larik apa pun menggunakan ^1, sehingga lokasi pemanggilannya tetap rapi.
using System;
static T Last<T>(T[] items) => items[^1];
int[] nums = { 3, 6, 9, 12 };
Console.WriteLine(Last(nums)); // 12Pemeriksaan Singkat
Uji pemahaman Anda tentang tipe Index dan operator ^.
Ringkasan
Anda telah mempelajari bahwa System.Index merepresentasikan posisi yang dapat dihitung dari awal atau, dengan operator ^, dari akhir.
^1adalah elemen terakhir;^0sama denganLength(satu posisi setelah akhir).IndexmemilikiValue,IsFromEnd, danGetOffset(length).Indexdikonversi secara implisit dariintdan bekerja pada larik, string, serta span.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tipe Index dan Operator ^” gratis?
Ya — teks lengkap “Tipe Index dan Operator ^” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tipe Index dan Operator ^”?
Referensikan elemen dari akhir koleksi. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Tipe Index dan Operator ^” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tipe Index dan Operator ^
- Tipe Range dan Operator ..
- Range dengan Array dan String
- Tipe Kustom yang Mendukung Range