Index Türü ve ^ İşleci
Bir koleksiyondaki öğelere sondan itibaren başvurun.
Index Türü ve ^ İşleci, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 1. 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.
Index Türüyle Tanışın
C#, bir dizi içindeki konumu açıklamak için özel bir System.Index türü sunar. Düz bir int türünden farklı olarak Index, yalnızca başlangıçtan değil, bir koleksiyonun sonundan sayılan bir konumu da temsil edebilir.
Bu sayede “son öğeyi verin” gibi kodlar hem anlaşılır hem de güvenli olur.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Index first = 0;
Console.WriteLine(numbers[first]); // 10^ (Sondan) İşleci
Şapka işleci ^, sondan sayan bir Index oluşturur. ^1 son öğeyi, ^2 sondan ikinci öğeyi ve bu şekilde devam eden konumları ifade eder.
^1'in geçerli son dizin olduğunu, ^0'ın ise Length değerine eşit olup sonun bir sonrasını gösterdiğini unutmayın.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers[^1]); // 50 (last)
Console.WriteLine(numbers[^2]); // 40Index Birinci Sınıf Değer Olarak
Index, bir değişkende saklayabileceğiniz, yöntemlere aktarabileceğiniz ve yeniden kullanabileceğiniz gerçek bir değerdir. Bu, konumu koleksiyondan ayırır.
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 ve Value
Her Index iki özellik sunar: Value (tamsayı konumu) ve IsFromEnd ( ^ ile oluşturulup oluşturulmadığı).
using System;
Index fromStart = 2;
Index fromEnd = ^2;
Console.WriteLine(fromStart.Value + " " + fromStart.IsFromEnd); // 2 False
Console.WriteLine(fromEnd.Value + " " + fromEnd.IsFromEnd); // 2 TrueGetOffset Konumu Çözümler
Sondan sayılan bir dizin, ancak koleksiyonun uzunluğunu bildiğinizde anlamlıdır. Index.GetOffset(length), bu dizini somut ve 0 tabanlı bir konuma dönüştürür.
using System;
Index fromEnd = ^1;
int length = 5;
int offset = fromEnd.GetOffset(length);
Console.WriteLine(offset); // 4^0 Sonun Bir Sonrasındadır
^0, Length değerine çözümlendiği için onunla dizinleme yapmak hata oluşturur. Yalnızca bir aralığın hariç üst sınırı olarak kullanışlıdır; bunu bir sonraki derste göreceksiniz.
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 Birçok Koleksiyonda Çalışır
Dizinleyicisi ve Length veya Count özelliği olan, ayrıca gerekli desteği sağlayan her tür Index kullanabilir. Diziler, string ve Span<T> doğrudan çalışır.
using System;
string word = "Coddy";
Console.WriteLine(word[^1]); // y
Console.WriteLine(word[^5]); // CDizinleri Dinamik Olarak Hesaplama
Bir değişken üzerinde ^ işleci kullanarak çalışma zamanındaki bir tamsayıdan Index oluşturabilirsiniz.
using System;
int[] data = { 5, 10, 15, 20 };
int n = 2;
Index idx = ^n; // ^ works on variables too
Console.WriteLine(data[idx]); // 15Index ve Düz int Arasındaki Fark
Düz bir int her zaman başlangıçtan sayar. Index, int türünden örtük olarak dönüştürülebilmeyi sürdürürken sondan sayma özelliği ekler; böylece mevcut kod çalışmaya devam eder.
using System;
Index a = 1; // implicit from int
Index b = ^1; // from end
Console.WriteLine(a.IsFromEnd); // False
Console.WriteLine(b.IsFromEnd); // TrueBir Eksik-Bir Fazla Hatalarından Kaçınma
Son öğeye ulaşmak için eskiden arr[arr.Length - 1] okunurdu. ^1 ile amaç açıkça belirtilir ve yanlış yapılabilecek bir aritmetik işlem kalmaz.
using System;
int[] scores = { 88, 92, 79, 95 };
Console.WriteLine(scores[scores.Length - 1]); // old way: 95
Console.WriteLine(scores[^1]); // new way: 95Gerçek Kodda Index
Aşağıda, çağrı noktasını temiz tutarak ^1 kullanan ve herhangi bir dizinin son öğesini döndüren küçük bir yardımcı gösterilmiştir.
using System;
static T Last<T>(T[] items) => items[^1];
int[] nums = { 3, 6, 9, 12 };
Console.WriteLine(Last(nums)); // 12Kısa Kontrol
Index türü ve ^ işleci hakkındaki anlayışınızı sınayın.
Özet
System.Index türünün, başlangıçtan veya ^ işleciyle sondan sayılabilen bir konumu temsil ettiğini öğrendiniz.
^1son öğedir;^0, sonun bir sonrası olanLengthdeğerine eşittir.Index,Value,IsFromEndveGetOffset(length)özelliklerine veya yöntemlerine sahiptir.inttüründen örtük olarak dönüşür ve dizilerde, dizelerde ve span türlerinde çalışır.
Sıkça Sorulan Sorular
“Index Türü ve ^ İşleci” dersi ücretsiz mi?
Evet — “Index 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.
“Index Türü ve ^ İşleci” dersinde ne öğreneceğim?
Bir koleksiyondaki öğelere sondan itibaren başvurun. 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 1. dersidir.
“Index 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