C# programlama dilinde bir değişken oluşturup, içinde bir veri kaydetmeyi öğrendiniz. Ancak benzer tipte verileri gruplayıp tek bir değişken içinde saklamak mümkün. Bu yazıda C# ile dizi tanımlayıp, diziler üzerinde örneklerle işlemler yapacağız.
C# diziler; ortak bir ad ile belirtilen benzer verileri, bir bir arada tutmak için oluşturulmuş bir gruptur. Ve her veri ögesine dizinin bir elemanı denir. Elemanların veri tipleri char, int, float vb. geçerli bir veri tipi olabilir ve elemanlar bitişik bir yerde saklanır. Dizinin uzunluğu, dizide bulunan elemanların sayısını belirtir. C# ‘da diziler için bellek tahsisi dinamik olarak yapılır. Ve diziler nesnedir, bu nedenle önceden tanımlanmış methodları kullanarak boyutlarını bulmak kolaydır. Dizideki değişkenler belirli bir numara sırasına göre sıralanır ve her biri 0’dan başlayan bir dizin içerir. C# içindeki diziler C/C++ ‘da olduğundan epey farklı farklı çalışır.
Dizi kavramını bir örnekle açıklayalım. Bir değişkenin sadece bir değer tutabileceğini öğrendik, örneğin int yas = 1; yas değişkenine sadece bir değer atanabilir. Farz edelim ki, 100 farklı yaş değeri saklamak istiyorsunuz, o zaman 100 farklı değişken oluşturmak zahmetli olacaktır. Bu sorunun üstesinden gelmek için C# bir dizi tanımlayarak bu sorunu çözmek daha akılcı olacaktır. Bu C# diziler konu anlatımı ile bir diziyi tanımla, değer atama ve okuma işlemleri konusunda fikir sahibi olacaksınız.
Diziler ile ilgili aklınızdan çıkarmamanız gereken bir kaç önemli nokta
Aşağıdaki şekil, dizinin değerlerinin sırayla nasıl kaydedildiğini gösterir:
Açıklama:
Yukarıdaki örnekte index değeri 0’dan başlıyor. Ayrıca bir dizi içinde sabit bir sayı değeri saklandığı da görünmektedir. Dizi indeksi, dizi boyutunun bir azı kadar olduğunu da unutmamak gerekir.
<VeriTipi>: Dizide saklanacak veri tipini belirtir.
[] :Dizi olarak verilerin saklanacağını ifade eder.
<DiziAdi>: Dizi değişkeninin adını gösterir. Bir değişken adı ile aynı tanımlama kuralları geçerlidir.
C# Dizi Tanımlama Örnekleri:
Örnek: dizi oluşturup uzunluk vermek
Ayrıca dizideki değerleri döngü ile de okumak mümkündür. Sadece listelerde kullanılan foreach yada for ve while ile okuma işlemleri yapılabilir. Aşağıdaki örnekte for döngüsü ile dizinin değerleri alt alta yazdırılmıştır. Burada Length özelliğinin dizinin uzunluğunu verdiğini belirtmek isterim.
Örnek:Kullanıcı tarafından girilen gün adının haftanın kaçıncı günü olduğunu bulan c# console uygulaması
C# diziler; ortak bir ad ile belirtilen benzer verileri, bir bir arada tutmak için oluşturulmuş bir gruptur. Ve her veri ögesine dizinin bir elemanı denir. Elemanların veri tipleri char, int, float vb. geçerli bir veri tipi olabilir ve elemanlar bitişik bir yerde saklanır. Dizinin uzunluğu, dizide bulunan elemanların sayısını belirtir. C# ‘da diziler için bellek tahsisi dinamik olarak yapılır. Ve diziler nesnedir, bu nedenle önceden tanımlanmış methodları kullanarak boyutlarını bulmak kolaydır. Dizideki değişkenler belirli bir numara sırasına göre sıralanır ve her biri 0’dan başlayan bir dizin içerir. C# içindeki diziler C/C++ ‘da olduğundan epey farklı farklı çalışır.
Dizi kavramını bir örnekle açıklayalım. Bir değişkenin sadece bir değer tutabileceğini öğrendik, örneğin int yas = 1; yas değişkenine sadece bir değer atanabilir. Farz edelim ki, 100 farklı yaş değeri saklamak istiyorsunuz, o zaman 100 farklı değişken oluşturmak zahmetli olacaktır. Bu sorunun üstesinden gelmek için C# bir dizi tanımlayarak bu sorunu çözmek daha akılcı olacaktır. Bu C# diziler konu anlatımı ile bir diziyi tanımla, değer atama ve okuma işlemleri konusunda fikir sahibi olacaksınız.
Diziler ile ilgili aklınızdan çıkarmamanız gereken bir kaç önemli nokta
- C#’da, tüm diziler dinamik olarak ayrılır.
- Diziler C# içinde nesneler olduğundan, uzunluklarını Length kullanarak bulabiliriz. Bu, sizeof kullanarak uzunluk bulduğumuz C / C ++ ‘dan farklıdır.
- Bir C# dizisi değişkeni, veri türünden sonra [] ile diğer değişkenler gibi bildirilebilir.
- Dizideki değişkenler sıralanır ve her biri 0’dan başlayan bir dizin içerir.
- C# dizisi, System.Array temel türünün bir nesnesidir.
- Sayısal dizinin ve referans tipi öğelerinin varsayılan değerleri sırasıyla sıfır ve boş olarak ayarlanır.
- Tırtıklı dizi elemanlarının referans türleri null olarak başlatılır.
- Dizi öğeleri, dizi tipi de dahil olmak üzere herhangi bir türde olabilir.
Aşağıdaki şekil, dizinin değerlerinin sırayla nasıl kaydedildiğini gösterir:

Açıklama:
Yukarıdaki örnekte index değeri 0’dan başlıyor. Ayrıca bir dizi içinde sabit bir sayı değeri saklandığı da görünmektedir. Dizi indeksi, dizi boyutunun bir azı kadar olduğunu da unutmamak gerekir.
C# Dizi Tanımlama
1 2 3 | <VeriTipi>[] <DiziAdi> |
[] :Dizi olarak verilerin saklanacağını ifade eder.
<DiziAdi>: Dizi değişkeninin adını gösterir. Bir değişken adı ile aynı tanımlama kuralları geçerlidir.
C# Dizi Tanımlama Örnekleri:
1 2 3 4 5 6 | int[] yas; // Tam sayı türünde değerlerin saklandığı bir dizi string[] isimler; // String türünde değerlerin saklandığı bir dizi double[] para; // ondalıklı sayıların saklandığı bir dizi türü Personel[] pers1; // Personel sınıfından örnek nesnelerin saklandığı bir dizi |
C# Başlatma
C# diziler Array sınıfın birer örneği olduğunu söylemiştim.new anahtar kelimesi ile tanımlanmış bir diziye hemen uzunluk belirtmek mümkündür. Aşağıdaki örneklerde dizi tanımlanıp hemen değer atamaları yapılmıştır.Örnek: dizi oluşturup uzunluk vermek
1 2 3 | string[] stringArray = new string[6]; |
C# Dizi Tanımlama ve Değer Atama
Yada dizi oluşturulduğu gibi dizinin elemanlarını başta girebiliriz. new anahtar kelimesi ile Array sınıfından örnek bir dizi oluşturup hemen üzerine değer ataması yapabilirsiniz.1 2 3 | int[] array1 = new int[] { 1, 3, 5, 7, 9 }; |
1 2 3 | string[] gunler= { "PAZARTESİ", "SALI", "ÇARŞAMBA", "PERŞEMBE", "CUMA", "CUMARTESİ", "PAZAR" }; |
C# Dizi Okuma – C# Dizi Değerlerini Yazdırma
C# dizideki bir adresi tek tek okumak yada bir döngü ile de okumak mümkündür. Yukarıdaki tabloda belirtildiği gibi okunacak değerin adres bilgisi köşeli parantez ile belirtilip okuma işlemi yapılır. Aşağıdaki örnekte tanımlanmış dizinin 0 ve 4 numaralı index içindeki değerler okunmuştur.1 2 3 4 5 | int[] array1 = new int[] { 1, 3, 5, 7, 9 }; Console.WriteLine(array1[0]); Console.WriteLine(array1[4]); |
1 2 3 4 5 6 7 | int[] array1 = new int[] { 1, 3, 5, 7, 9 }; for (int i = 0; i < array1.Length; i++) { Console.WriteLine(array1); } |
Ayrıca C# Diziler Konusu ile İlgili Diğer Başlıklar
- Dizileri Yeniden Boyutlandırma
- Dizilerde Kullanılan Metotlar
- Dizi İçinde Arama İşlemleri
- ArrayList Sınıfı
- ArrayList Örnekleri
- List Kullanımı
- HashTable Sınıfı
C# Dizi Örnekleri
Örnek: C# dizi tanımlama, değer atama ve değerleri for, foreach, while, do while döngülerini kullanarak ekrana yazdırma1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | class Program { static void Main(string[] args) { // dizi tanımlama int[] intArray; // dizinin boyutunu belirleme intArray = new int[5]; // dizinin ilk dizinine değer atama intArray[0] = 10; // dizinin ikinci dizinine değer ataa intArray[1] = 20; // sonraki dizinlerine değer ataa intArray[2] = 30; intArray[3] = 40; intArray[4] = 50; //for döngüsü le dizinindeğerlerini yazdırma Console.Write("For Döngüsü :"); for (int i = 0; i < intArray.Length; i++) Console.Write(" " + intArray); Console.WriteLine(""); Console.Write("Foreach DÖngüsü :"); // foreach kullanımı foreach (int i in intArray) Console.Write(" " + i); Console.WriteLine(""); Console.Write("while Döngüsü :"); //while döngüsü int j = 0; while (j < intArray.Length) { Console.Write(" " + intArray[j]); j++; } Console.WriteLine(""); Console.Write("Do-while döngüsü :"); // do while kullanımı int k = 0; do { Console.Write(" " + intArray[k]); k++; } while (k < intArray.Length); Console.ReadLine(); } } |
Örnek:Kullanıcı tarafından girilen gün adının haftanın kaçıncı günü olduğunu bulan c# console uygulaması
1 2 3 4 5 6 7 8 9 10 11 12 13 | string[] gunler = { "pazartesi", "salı", "carsamba", "persembe", "cuma", "cumartesi", "pazar" }; Console.WriteLine("Gün adı giriniz : "); string gun = Console.ReadLine(); for (int i = 0; i < gunler.Length; i++) { if (gun == gunler) { Console.WriteLine(i + 1 + ". gündür"); } } Console.ReadLine(); |
