C# Diziler ve Dizi Tanımlama

C# da diziler “System.Array” sınıfı altında yer alır. “Array” kelime anlamı olarak da “dizi, düzen, sıraya dizmek, sıralamak” olarak kullanılır. Peki biz C#’da dizileri ne için ve nerede kullanırız? Örnek olarak ufak bir iş yeriniz var ve toplamda 10 adet çalışan işçiniz var. Siz bu işçilerin her birinin adını ve telefonlarını kaydetmek istiyorsunuz. O halde 10 tane string “isim” adında bir değişken tanımlamanız ve bunun yanında 10 tane de int “telefon_numarası” şeklinde değişken tanımlamanız lazım yani toplamda 20 farklı değişken tanımlamadan bu işlemi yapamazsınız. Yüzlerce çalışanınız olduğunu düşünün giderek bu işin içinden çıkılmaz bir hal alacaktır. Burada yardımımıza “Array” yani “Diziler” gelecektir. C# projemiz üzerinde “Çalışanlar” isminde bir dizi tanımlayıp tüm işçilerin isimlerini tek bir diziye kaydedebilirsiniz. Hepsi için ayrı ayrı tanımlama ve değişken tanımlamanıza gerek kalmaz. Diziler aynı grup ve aynı amaçtaki verileri saklamak için kullanılır.

Diğer bir örnek ise haftanın günleri.. “gün1, gün2, gün3…” şeklinde 7 farklı değişken tanımlamak yerine “Haftanın Günleri” isminde tek bir dizi tanımlayıp tamamını bunun içerisin de saklayabiliriz.  Dizi tanımlama ve kullanımına dair canlı örnekleri aşağıda inceleyelim…

Bir dizi içerisinde birden fazla değeri tekbir başlık altında tutabilmektedir. Buradaki herbir dizi elemanına erişmek için dizi içerisindeki indeks değerleri kullanılır. Indeks numarası 0 dan başlayarak ardışık sayılardan oluşur. Örneğin aşağıda resimde tanımlaman gunler dizisi 7 elemanlı bir dizidir. Bu dizinin indeks numaraları 0 ile 6 arasındadır.  İlk elemanın indeks numarası 0 (sıfır) , son elemanın indeks numarası ise 6 dır. ve Program içerisinde dizi içerisindeki bir elemana diziadi[indexnumarasi]   şeklinde erişilebilir.

String Bir Dizi Tanımlama

Bu örnekte haftanın günlerini bir diziye atarak nasıl kullanıldığına bakalım. Dizileri tanımlarken birden fazla yol kullanabilirsiniz. Bu örneğimiz için haftanın günlerini farklı dizi tanımlama yöntemleri ile inceleyelim.

Yöntem: 1

Genel Kullanım Mantığı

Örnek Uygulama:

Satır 1      :  Sisteme “haftaninGunleri” isimli bir string bir dizi tanımladık ve “Eşittir” simgesinden sonra dizinin toplam eleman sayısını belirttik.
Satır 2-8 :
  Veriler Hafızada sıfırdan başlayarak sıra ile bulunur. Haftanın günlerinin tamamını tek tek indeks numaralarına göre tanımladık. Dikkatinizi çekmiştir, haftanın birinci günü “Pazartesi” değil, Sıfırıncı günü pazartesidir. Her ne kadar saçma gelse de dizilerde elemanlar 1’den başlamaz her zaman saymaya sıfırdan başlar. Fakat şu durum karıştırılmamalıdır, haftanın 7.günü pazar aynı zamanda dizinin 6.elemanıdır. 
Satır 9   :  
Console.WriteLine() metodu ile haftanın 4.günü olan Perşembeyi ekrana yazdırmak istedik. Fakat bu işlemi yaparken dizinin 4.elemanını seçersek yanlış olacaktır çünkü diziler saymaya sıfırdan başlar demiştik. Bundan dolayı perşembeyi ekrana yazdırmak için dizinin 3.elemanını ekrana yazdırmamız lazım.
Satır 10 :   
Console.ReadKey() metodu ile ekranın hemen kapanmamasını ve  ekranda “Perşembe” yazısını görmenizi sağladık. Console.Readkey() metodunun kullanım alanı tabi ki bu değil fakat şuan ekranın kapanmaması için kullanabiliriz.

Kod Çalıştığında Programın Ekran Çıktısı : 

diziler_array_ekran_ciktisi_1

Yöntem: 2

Genel Kullanım Mantığı:

Örnek Uygulama:

Satır 1    : “haftaninGunleri” isminde bir dizi tanımladık ve birinci yöntemde olduğu gibi satır satır belirtmek yerine direkt olarak dizinin tüm elemanlarını süslü parantez içerisinde belirttik.
Satır 2   :  Console.WriteLine() metodu ile haftanın 7.günü olan Perşembeyi ekrana yazdırmak istedik. Fakat bu işlemi yaparken dizinin 7.elemanını seçersek yanlış olacaktır ve program hata verecektir çünkü dizide 7.elemanı yok unutmayalım diziler saymaya sıfırdan başlar demiştik. Bundan dolayı pazarı ekrana yazdırmak için dizinin 6.elemanını ekrana yazdırmamız lazım.
Satır 3 :   
Console.ReadKey() metodu ile ekranın hemen kapanmamasını ve  ekranda “Pazar” yazısını görmenizi sağladık. Console.Readkey() metodunun kullanım alanı tabi ki bu değil fakat şuan ekranın kapanmaması için kullanabiliriz.

Not: Yöntem 2’de , ilk yöntemde ki gibi dizilerin indeks numarasını (sıra numarasını) tek tek belirtmedik fakat bu bir problem değil çünkü siz belirtmezseniz C# bunu otomatik olarak kendisi atayacaktır. Daha iyi anlaşılması için aşağıda ki resmi inceleyebilirsiniz.

gunlerdizi

 

Integer Bir Dizi Tanımlama

Birinci örneğimiz de string dizileri tanımlamayı öğrendik, bu örneğimiz de ise Integer yani sayısal verilerle işlem yapmayı öğreneceğiz. Dizi kullanımı genel mantığını bir üst örnekte detaylı olarak belirttiğim için direk örneğe geçiyorum.. Kullanım ve yazım mantığı tamamen aynı tek fark ise string ifadeler de kullandığımız “Tırnak İşaretlerini” integer veriler için kullanmıyoruz.. Bunun dışında her şey aynı 🙂

 

For Döngüsü ile Dizinin Tüm Elemanlarını Yazdırma
 

Foreach Döngüsü ile Dizinin Tüm Elemanlarını Yazdırma
 


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.