C#

C# Diziler ve Dizi Kullanımı

C# dizisi bir nesne veya tür koleksiyonudur. C# dizi öğeleri, diğer dizi türleri de dahil olmak üzere herhangi bir türde olabilir. Bir dizi, Tek Boyutlu, Çok Boyutlu veya İç içe olabilir.

C# ‘da bir dizi dizini sıfırdan başlar. Bu, bir dizinin ilk öğesinin 0. konumdan başladığı anlamına gelir. Bir dizideki son öğenin konumu toplam öğe sayısı – 1 olur. Dolayısıyla, bir dizide 10 öğe varsa, son 10. öğe 9. konumdadır.

C# ‘da, diziler sabit uzunluklu veya dinamik olarak bildirilebilir. Sabit uzunluktaki bir dizi önceden tanımlanmış sayıda öğeyi saklayabilir. Dinamik bir dizi önceden tanımlanmış bir boyuta sahip değil. Diziye yeni öğeler ekledikçe dinamik dizinin boyutu artar. Sabit uzunluklu veya dinamik bir dizi bildirebilirsiniz. Dinamik bir diziyi tanımlandıktan sonra statik olarak bile değiştirebilirsiniz.

Şimdi C# ‘daki dizilerin basit bildirimlerine bir göz atalım. Aşağıdaki kod snippet’i, sabit boyutu olmayan tamsayı türlerinin en basit dinamik dizisini tanımlar.

Yukarıdaki kod snippet’inden görebileceğiniz gibi, bir dizinin bildirimi bir dizi türü ve ardından köşeli ayraç ([]) ve dizinin adı ile başlar.

 

Aşağıdaki kod snippet’i, yalnızca 0-4 dizininden başlayarak 5 öğeyi depolayabilen bir dizi bildirir.

 

Aşağıdaki kod snippet’i, 0 ile 99 arasında indexleri olan 100 öğeyi depolayabilen bir dizi bildirir.

Diziler türleri

Önceki kod snippet’inde, basit bir tamsayı türü dizisinin nasıl tanımlanacağını gördük. Benzer şekilde, double, char ve string gibi her tür diziyi tanımlayabiliriz.

C# ‘da, diziler nesnelerdir. Bu, bir dizi bildirmenin dizi oluşturmadığı anlamına gelir. Bir dizi bildirdikten sonra, “new” operatörünü kullanarak bir dizi başlatmanız gerekir.

Aşağıdaki kod snippet’i, double, char, bool ve string veri türlerinin dizilerini tanımlar.

Dizi Başlatma

Bir dizi bildirildikten sonra, bir sonraki adım bir diziyi başlatmaktır. Bir dizinin başlatma işlemi, diziye gerçek verilerin eklenmesini içerir.

Aşağıdaki kod snippet’i 3 öğeden oluşan bir dizi oluşturur ve dizi başlatıldığında bu öğelerin değerleri eklenir.

Alternatif olarak, aşağıdaki kod snippet’inde listelendiği gibi dizi öğelerini tek tek ekleyebiliriz.

Aşağıdaki kod snippet’i, string değerlerine sahip dinamik bir dizi bildirir.

Diziye Erişim

Bir dizi öğesine, dizindeki öğe dizinini ileterek erişebiliriz. Aşağıdaki kod snippet’i üç öğeden oluşan bir dizi oluşturur ve bu öğeleri konsolda görüntüler.

Bu yöntem, bir diziden hangi öğeye erişmek istediğinizi bildiğinizde kullanışlıdır. Dizideki öğelerden daha büyük bir öğe dizini iletmeye çalışırsanız hata alırsınız.

Foreach Loop kullanarak bir diziye erişme

Foreach kontrol ifadesi (döngü), bir dizinin öğeleri arasında yineleme yapmak için kullanılır. Örneğin, aşağıdaki kod bir dizginin tüm öğelerini okumak için foreach döngüsü kullanır.

Bu yaklaşım, bir dizideki öğenin tam dizinini bilmediğinizde ve tüm öğeler arasında döngü yapmanız gerektiğinde kullanılır.

Dizi Türleri

Diziler aşağıdaki dört kategoriye ayrılabilir.

  • Tek boyutlu diziler
  • Çok boyutlu diziler veya dikdörtgen diziler
  • Düzensiz diziler
  • Karışık diziler

Tek Boyutlu Diziler

Tek boyutlu diziler dizilerin en basit şeklidir. Bu tür diziler, önceden tanımlanmış türde öğelerin sayısını depolamak için kullanılır. Tek bir boyut dizisindeki tüm öğeler 0’dan -1 dizisinin boyutuna kadar bitişik olarak saklanır.

Aşağıdaki kod 3 öğeyi saklayabilecek bir tamsayı dizisi bildirir. Koddan da görebileceğiniz gibi, ilk önce [] dirseğini kullanarak diziyi bildiriyorum ve bundan sonra diziyi yeni operatörü çağırarak başlatırım.

C # ‘daki dizi bildirimleri oldukça basittir. Dizi öğelerini süslü parantezlere ({}) koyarsınız. Bir dizi başlatılmazsa, dizi bildirildiği sırada başlatılmazsa, öğeleri otomatik olarak dizi türü için varsayılan başlangıç değerine sıfırlanır.

Aşağıdaki kod, tamsayı türünde üç öğeden oluşan bir diziyi bildirir ve başlatır.

Aşağıdaki kod 5 dize öğesinden oluşan bir dizi bildirir ve başlatır.

new operatör kullanmadan bu değerleri doğrudan atayabilirsiniz.

Dinamik uzunluk dizisini aşağıdaki gibi başlatabilirsiniz,

Çok Boyutlu Diziler

Dikdörtgen dizi olarak da bilinen çok boyutlu dizi, birden fazla boyuta sahip bir dizidir. Çok boyutlu bir dizinin formu bir matristir.

Çok boyutlu bir dizi bildirme

Çok boyutlu bir dizi şu şekilde bildirilir:

Çok boyutlu bir dizi sabit boyutlu veya dinamik boyutlu olabilir.

Çok boyutlu dizileri başlatma

Aşağıdaki kod snippet’i, 3×2 ve 2×2 matrisli iki çok boyutlu diziyi tanımlayan sabit boyutlu çok boyutlu dizilere bir örnektir. İlk dizi 6 öğe, ikinci dizi 4 öğe saklayabilir. Bu dizilerin her ikisi de bildiri sırasında başlatılır.

Şimdi dizinin öğe sayısından emin olmadığınız çok boyutlu dinamik dizilerin örneklerine bakalım. Aşağıdaki kod snippet’i, sınırsız iki çok boyutlu dizi oluşturur.

Ayrıca, tek boyutlu dizilerde yaptığımız gibi new operatörü de çıkarabilirsiniz. Bu değerleri, new işleci kullanmadan doğrudan atayabilirsiniz. Örneğin:

Ayrıca dizi öğelerini tek seferde bir öğe başlatabiliriz. Aşağıdaki kod snippet’i, dizi öğelerini teker teker başlatma örneğidir.

Çok boyutlu dizilere erişme

Çok boyutlu dizi öğeleri bir matris biçiminde temsil edilir ve öğelerine erişmek için matris boyutunu belirtmemiz gerekir. Örneğin, öğe (1,2), ikinci satırda ve üçüncü sütunda matristeki bir dizi öğesini temsil eder.

Aşağıdaki kod snippet’i, yukarıdaki kodda tanımlanan numaralar dizisine nasıl erişileceğini gösterir.

Düzensiz Diziler (Jagged Array)

Jagged diziler dizilerin dizileridir. Jagged dizinin öğeleri diğer dizilerdir.

Jagged Dizileri Bildirme

Jagged dizinin bildirimi iki parantez içerir. Örneğin, aşağıdaki kod snippet’i, bir dizinin üç öğesinden oluşan tırtıklı bir dizi bildirir.

Aşağıdaki kod snippet’i, bir dizinin iki öğesi olan tırtıklı bir dizi bildirir.

Jagged Dizileri Başlatma

Jagged bir dizinin kullanılabilmesi için öğelerinin başlatılması gerekir. Aşağıdaki kod parçacığı, tırtıklı bir dizi başlatır; iki tamsayı içeren bir tamsayı dizisine sahip ilk öğe, 4 tamsayı içeren bir tamsayı dizisine sahip ikinci öğe ve 6 tamsayı içeren bir tamsayı dizisine sahip üçüncü öğe.

Ayrıca, dizinin öğelerinin değerlerini sağlayarak jagged bir dizinin öğelerini başlatabiliriz. Aşağıdaki kod snippet’i, bir dizi öğelerini bildirim sırasında doğrudan başlatır.

Jagged Dizilere Erişim

Jagged dizinin öğelerine ayrı ayrı aşağıdaki şekilde erişebiliriz:

Ayrıca, tırtıklı bir dizinin tüm öğeleri arasında geçiş yapabiliriz. Bir dizinin Length özelliği çok yardımcı olur; bize bir dizideki öğe sayısını verir. Aşağıdaki kod snippet’i, tırtıklı bir dizinin tüm öğeleri arasında dolaşır ve bunları ekranda görüntüler.

Karışık Diziler

Karışık diziler çok boyutlu dizilerin ve tırtıklı dizilerin bir kombinasyonudur. Karışık diziler türü .NET 4.0’dan kaldırılır. Gerçekten karışık diziler kullanmadım. Çok boyutlu ve tırtıklı dizilerin yardımıyla istediğiniz her şeyi yapabilirsiniz.

Basit Bir Örnek

Liste 1’de listelenen, her türlü dizinin nasıl bildirileceğini, sonra nasıl başlatılacağını ve bunlara nasıl erişileceğini gösteren tam bir örnek.

Bu kodu sınamak için Visual Studio 2010 veya Visual C# Express kullanarak bir konsol uygulaması oluşturun ve bu kodu kopyalayıp yapıştırın.

 

Çıktı:

 

Dizi Özellikleri

Tablo 1’de Array sınıfı özellikleri açıklanmaktadır.

Tablo 1
IsFixedSizeBir dizinin sabit bir boyutu olup olmadığını belirten bir değer döndürün.
IsReadOnlyBir dizinin salt okunur olup olmadığını gösteren bir değer döndürür.
LongLengthBir dizinin tüm boyutlarındaki toplam öğe sayısını temsil eden 64 bitlik bir tam sayı döndürür.
LengthBir dizinin tüm boyutlarındaki toplam öğe sayısını temsil eden 64 bitlik bir tam sayı döndürür….
RankBir dizinin boyut sayısını döndürür.

Aşağıdaki kod snippet’i bir dizi oluşturur ve özellik değerlerini görüntülemek için Dizi özelliklerini kullanır.

 

 

 

1 Yorum

Yorum yapmak için tıklayın