Range Türü ve .. İşleci
Aralık ifadeleriyle dilimler alın.
Range Türü ve .. İşleci, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
Range Türüyle Tanışın
System.Range, bir dizinin dilimini bir başlangıç ve bir bitiş Index kullanarak açıklar. Alt dizileri ifade etmek için aralık işleci .. ile kusursuz biçimde birlikte çalışır.
using System;
Range r = 1..3;
Console.WriteLine(r.Start + ".." + r.End); // 1..3.. (Aralık) İşleci
Aralık işleci a..b, a dizininden (dahil) b dizinine ( hariç) kadar bir Range oluşturur. Bu nedenle 1..3, 1 ve 2 konumlarını kapsar.
using System;
int[] data = { 10, 20, 30, 40, 50 };
int[] slice = data[1..3];
Console.WriteLine(string.Join(",", slice)); // 20,30Başlangıç Dahil, Bitiş Hariç
Hariç tutulan bitiş, for döngülerinin çalışma biçimini yansıtır: öğe sayısı end - start değerine eşittir. 2..5 aralığı üç öğe üretir.
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,4Ucu Açık Aralıklar
Sınırların herhangi birini belirlemeyebilirsiniz. ..3, “başlangıçtan 3'e kadar” ve 2.., “2'den sona kadar” anlamına gelir. Tek başına .., dizinin tamamını kopyalar.
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,50Sondan Sayılan Dizinlerle Aralıklar
Sona göre dilimlemek için .. ile ^ işlecini birleştirin. ^2.., “son iki öğe” anlamına gelir.
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)Saklanan Değer Olarak Range
Range, aynı uzunluk kuralını kullanan farklı koleksiyonlarda adlandırıp yeniden kullanabileceğiniz bir değerdir.
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
Bir aralığı belirli bir uzunluğa göre çözümlemek için GetOffsetAndLength(length) çağrısını yapın. Bu çağrı, sondan sayılan dizinleri sizin için işleyerek başlangıç konumunu ve dilim uzunluğunu döndürür.
using System;
Range r = ^3..^1;
var (offset, length) = r.GetOffsetAndLength(5);
Console.WriteLine(offset + " " + length); // 2 2Range.All
Statik Range.All, .. ile aynıdır ve dizinin tamamını seçer. Aralıkları bağımsız değişken olarak aktarırken kullanışlıdır.
using System;
Range whole = Range.All;
int[] d = { 9, 8, 7 };
Console.WriteLine(string.Join(",", d[whole])); // 9,8,7Range Türünü Açıkça Oluşturma
İşlecinin yanı sıra, açıklık sağlamak için oluşturucuyu veya Range.StartAt ve Range.EndAt fabrika yöntemlerini çağırabilirsiniz.
using System;
Range a = new Range(1, 3);
Range b = Range.StartAt(2);
Range c = Range.EndAt(2);
Console.WriteLine(a + " | " + b + " | " + c);Boş ve Geçersiz Aralıklar
Başlangıcın bitişe eşit olduğu bir aralık boş bir dilim üretir. Başlangıcı bitişini geçen bir aralık ise çözümlendikten sonra dilimleme sırasında hata oluşturur.
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"); }Bir Araya Getirme
Aralıklar, metin ve dizi işlemlerini kısa ve anlaşılır hâle getirir. Aşağıda, hiçbir dizin aritmetiği kullanmadan bir dizinin ortasındaki bölümü alıyoruz.
using System;
int[] readings = { 5, 7, 9, 11, 13, 15 };
int[] window = readings[1..^1];
Console.WriteLine(string.Join(",", window)); // 7,9,11,13Kısa Kontrol
Aralık işleci kurallarını anladığınızdan emin olun.
Özet
System.Range türünün .. işleciyle bir dilimi açıkladığını öğrendiniz.
- Başlangıç dahildir, bitiş hariçtir: sayı = bitiş - başlangıç.
- Sınırlar isteğe bağlıdır:
..3,2..,... .., sondan dilimleme için^ile birleştirilebilir.GetOffsetAndLength(length), bir aralığı somut sayılara dönüştürür.
Sıkça Sorulan Sorular
“Range Türü ve .. İşleci” dersi ücretsiz mi?
Evet — “Range Türü ve .. İşleci” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“Range Türü ve .. İşleci” dersinde ne öğreneceğim?
Aralık ifadeleriyle dilimler alın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Range Türü ve .. İşleci” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Index Türü ve ^ İşleci
- Range Türü ve .. İşleci
- Diziler ve Dizelerle Aralıklar
- Aralıkları Destekleyen Özel Türler