Tipe Range dan Operator ..
Ambil irisan dengan ekspresi range.
Tipe Range dan Operator .. adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Range
System.Range mendeskripsikan irisan suatu urutan menggunakan Index sebagai awal dan akhir. Tipe ini sangat cocok dipadukan dengan operator rentang .. untuk menyatakan suburutan.
using System;
Range r = 1..3;
Console.WriteLine(r.Start + ".." + r.End); // 1..3Operator .. (rentang)
Operator rentang a..b membentuk sebuah Range dari indeks a (inklusif) hingga indeks b (eksklusif). Jadi, 1..3 mencakup posisi 1 dan 2.
using System;
int[] data = { 10, 20, 30, 40, 50 };
int[] slice = data[1..3];
Console.WriteLine(string.Join(",", slice)); // 20,30Awal Inklusif, Akhir Eksklusif
Akhir yang eksklusif meniru cara kerja perulangan for: jumlah elemen sama dengan end - start. Rentang 2..5 menghasilkan tiga elemen.
using System;
int[] data = { 0, 1, 2, 3, 4, 5, 6 };
int[] slice = data[2..5];
Console.WriteLine(slice.Length); // 3
Console.WriteLine(string.Join(",", slice)); // 2,3,4Rentang dengan Batas Terbuka
Anda dapat menghilangkan salah satu batas. ..3 berarti "dari awal hingga 3", sedangkan 2.. berarti "dari 2 hingga akhir". .. saja menyalin seluruh urutan.
using System;
int[] d = { 10, 20, 30, 40, 50 };
Console.WriteLine(string.Join(",", d[..3])); // 10,20,30
Console.WriteLine(string.Join(",", d[2..])); // 30,40,50
Console.WriteLine(string.Join(",", d[..])); // 10,20,30,40,50Rentang dengan Index dari Akhir
Gabungkan .. dengan ^ untuk mengiris secara relatif terhadap akhir. ^2.. berarti "dua elemen terakhir".
using System;
int[] d = { 1, 2, 3, 4, 5 };
Console.WriteLine(string.Join(",", d[^2..])); // 4,5
Console.WriteLine(string.Join(",", d[..^1])); // 1,2,3,4 (drop last)Range sebagai Nilai yang Disimpan
Sebuah Range adalah nilai yang dapat Anda beri nama dan gunakan kembali pada berbagai koleksi yang mengikuti konvensi panjang yang sama.
using System;
Range middle = 1..^1; // drop first and last
int[] a = { 0, 1, 2, 3, 4 };
Console.WriteLine(string.Join(",", a[middle])); // 1,2,3Range.GetOffsetAndLength
Untuk menentukan rentang berdasarkan panjang konkret, panggil GetOffsetAndLength(length). Metode ini mengembalikan ofset awal dan panjang irisan, serta menangani indeks dari akhir untuk Anda.
using System;
Range r = ^3..^1;
var (offset, length) = r.GetOffsetAndLength(5);
Console.WriteLine(offset + " " + length); // 2 2Range.All
Range.All statis sama dengan .. dan memilih seluruh urutan. Fitur ini berguna saat meneruskan rentang sebagai argumen.
using System;
Range whole = Range.All;
int[] d = { 9, 8, 7 };
Console.WriteLine(string.Join(",", d[whole])); // 9,8,7Membuat Range secara Eksplisit
Selain menggunakan operator, Anda dapat memanggil konstruktor atau metode pabrik Range.StartAt dan Range.EndAt agar maksudnya lebih jelas.
using System;
Range a = new Range(1, 3);
Range b = Range.StartAt(2);
Range c = Range.EndAt(2);
Console.WriteLine(a + " | " + b + " | " + c);Rentang Kosong dan Tidak Valid
Rentang yang awalnya sama dengan akhirnya menghasilkan irisan kosong. Rentang yang awalnya berada setelah akhirnya (setelah ditentukan) akan melempar pengecualian saat pengirisan dilakukan.
using System;
int[] d = { 1, 2, 3, 4 };
Console.WriteLine(d[2..2].Length); // 0 (empty)
try { var _ = d[3..1]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("invalid range"); }Menggabungkan Semuanya
Rentang membuat pemrosesan teks dan larik menjadi ringkas. Di sini, kita mengambil jendela di tengah larik tanpa aritmetika indeks.
using System;
int[] readings = { 5, 7, 9, 11, 13, 15 };
int[] window = readings[1..^1];
Console.WriteLine(string.Join(",", window)); // 7,9,11,13Pemeriksaan Singkat
Pastikan Anda memahami semantik operator rentang.
Ringkasan
Anda telah mempelajari bahwa System.Range mendeskripsikan irisan dengan operator ...
- Awal bersifat inklusif, sedangkan akhir eksklusif: jumlah = akhir - awal.
- Batas bersifat opsional:
..3,2..,... ..dapat digabungkan dengan^untuk mengiris dari akhir.GetOffsetAndLength(length)menentukan rentang menjadi angka konkret.
Belajar C# dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 93
- Pelajaran
- 346
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tipe Range dan Operator ..” gratis?
Ya — teks lengkap “Tipe Range 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 Range dan Operator ..”?
Ambil irisan dengan ekspresi range. 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 2 dari 4.
Berapa lama pelajaran “Tipe Range 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