0Pricing
C# Academy · Ders

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]); // 40

Index 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]); // 4

IsFromEnd 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 True

GetOffset 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]); // C

Dizinleri 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]); // 15

Index 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); // True

Bir 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: 95

Gerç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)); // 12

Kı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.

  • ^1 son öğedir; ^0, sonun bir sonrası olan Length değerine eşittir.
  • Index, Value, IsFromEnd ve GetOffset(length) özelliklerine veya yöntemlerine sahiptir.
  • int tü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

  1. Index Türü ve ^ İşleci
  2. Range Türü ve .. İşleci
  3. Diziler ve Dizelerle Aralıklar
  4. Aralıkları Destekleyen Özel Türler
← C# Academy Sayfasına Dön