ASP.NETC#DizilerEğitim

Dizi Nedir ? ~ C# Diziler (Array)| Dizi Kullanımı | Dizi Metotları |

Selamun aleyküm arkadaşlar bugün sizlere c# diziler konusunu işleyeceğiz tabiki konuya girmeden önce bilmemiz gereken şey şu dizi nedir ?

C# Diziler

 Dizi nedir? Neden İhtiyaç Duyarız?

            Dizi= Diziler aynı tipte değerlerin bir arada taşınmasını sağlayan referans tipli programlama öğeleridir.

            Diyelim ki 40 kişilik bir sınıftasınız.Final notlarınızı bir değişkende tutmak istenildiği zaman teker teker 40 adet değişken oluşturmak gerekir.Bunun yerine byte veri tipinde (0-255 aralığındaki değerleri tutabilir) bir dizi oluşturup burda tutmak daha etkin bir çözümdür.Ayrıca program içerisinde 40 kişinin notunu bir yerden başka bir yere taşımakda daha kolay olacaktır.

Dizideki Değişkenler

55

75

90

100

Dizideki Sıraları0123

 

 C# Diziler ‘in Özellikleri

  • Dizi tanımlanırken ona bir isim verilir.Ancak diziye atılan her bir eleman için ayrı ayrı değişken ismi verilmesine gerek yoktur.

 

  • c# Diziler, elemanlarına ismiyle değil indeks sıralarıyla erişim sunar.

 

  • Diziye atılan her bir eleman otomatik olarak 0’dan başlayıp 1’er 1’er artan bir indeksleme sistemi ile kaydedilir.Daha sonra dizi elemanlarına erişmek istenildiğinde indeksler ile erişebilirsin.

 

  • Örneğin öğrencileri sınıf listesindeki sıralarına göre diziye atıp bu sıraya bakarak nota erişebilirsin.
  • Diziler referans tipleridirler.Dolayısıyla diziye atılan verilen belleğin heap bölgesinde tutulurken diziye erişim için oluşturulan değişken belliğin stacks bölgesinde bulunur.

C# Diziler ‘in Kullanımı  – Dizi Değişkenlerini Tanımlamak

Bir dizi tanımlamanın genel yazım şekli şöyledir:

 tip diziismi = new tip[elemansayisi]; 

tip: Dizide tutulacak verilerin tipidir.

diziismi: Dizinin ismidir.

boyut: Dizide tutulacak eleman sayısıdır.

 Örneğin; aşağıda 7 elemanlı bir tamsayılar dizisi tanımlanmıştır:

Dizilere veri atamak için, aşağıdaki söz dizimi kullanılır:

 sayilar[indeks] = 1; 

indeks: Dizideki verilere verilen sıra numarasıdır.

Dizilerden değer okumak içinse, aşağıdaki söz dizimi kullanılır:

 sayilar[indeks] = 1; 

Örneğin, 5 kişilik bir basketbol takımındaki basketbolcuların forma numaralarını ayrı ayrı değişkenlerde tutmak yerine, basketTakimi adlı bir dizi içinde tutabiliriz.

Bu ifadeyle, basketTakimi isminde, içinde 5 tane byte değeri tutabilecek bir dizi tanımlanır. Şimdi, forma numaralarını diziye aktaralım:

Dizi tanımlama söz dizimi, değişken tanımlama söz dizimi ile benzerdir.Bir diziyi tanımlarken, dizi içerisinde hangi tipte değerler saklayacağını belirtmelisin.İkisini ayıran detay, dizide tipin sonuna koyulan köşeli parantezlerdir.

Örneğin sayılarım adında int tipinde bir dizi tanımlaması ekrandaki gibi yapılır.Burada tanımlanan tip, sadece önceden tanımlı tiplerden birisi (int,double vb.) olmak zorunda değildir.Temel sınıf kütüphanesindeki herhangi bir tipte olabileceği gibi kendi yazdığın tipte bir dizi de tanımlayabilirsin.

Not: Dizi değişkenlerine çoğul adlar verilirse,bir diziyi işaret ettiği daha rahat anlaşılabilir.

Bir dizi oluşturulduğunda dizinin içi , oluşturulduğu tipin varsayılan değerleriyle doldurulur.Dizinin bu davranışı değiştirilebilir ve başlangıçta istenilen değerlerle belleğe çıkarılabilir.Bunu gerçekleştirmek için dizi oluşturulma söz diziminin sonunda küme parantezleri kullanılır.Dizide belirtilen tipte ve eleman sayısı kadar değeri, süslü parantezler içine,aralarında virgül olacak şekilde yazman gerekir.Örnek olarak “sayılarim” adlı dizi; 4,9,7 ve 3 değerleri ile birlikte oluşturulabilir.

Örnek;

Dizi boyutunun 4 elemanlı olacağı bildirildiği için süslü parantezler içerisine 4 elemandan yada fazla değer girilmesi durumunda derleme zaman hatası alınır.Birkaç veri tipi için bu söz diziminin kullanışı aşağıdaki gibidir.

Örnek;

Dizi oluşturulurken eğer elemanların ilk değerlerini veriyorsan, eleman sayısı belirtmek zorunda değilsin.Derleyici, başlangıç değerlerindeki eleman adedine bakarak dizinin eleman sayısını hesaplar.

Örnek;

Dizi oluşturulurken eğer elemanlarını veriyorsan, new anahtar kelimesi ve veri tipi kullanımı ihmal edilebilir.Derleyici, başlangıç değerlerinin adedine bakarak dizinin eleman sayısını otomatik olarak hesaplar.

Örnek;

Her Bir Dizi Elemanına Erişmek

   İstenilen dizi elemanına erişmek için dizi üzeerinde ilgili elemanın indeks sırası verilir.Örneğin sayilarim adıyla oluşturulup değerleri verilen dizinin son elemanına erişmeye çalıştığını düşünelim.

Burada dikkat edilmesi gereken nokta; C#’da dizi mantığındaki her şeyin indeks olarak 0 değeri ile başlamasıdır.

dizi örnek
 

int[] sayilarim = new int[4] { 4, 9, 7, 3 };

int sayi2 = sayilarim[1];

Response.Write(“Dizinin {0}. indeksli elemanı : {1}”, 1, sayi2);

 

Dizi elemanlarının değerleri tanımlandıkdan sonra değiştirilebilir.Dizinin ikinci indeksli elemanı olan 7 değerini ekrandaki kod parçasında görüldüğü gibi 10 olarak değiştirebilirsin.

Örnek;

Bir diziye değerleri verilmeden sadece eleman yazılarak (varsayılan değerleri ile) oluşturulduktan sonra dizi elemanlarını tek tek de girebilirsin.

Örnek;

 

Dizi oluşturulurken eğer elemanlarını veriyorsan, new anahtar kelimesi ve veri tipi kullanımı ihmal edilebilir.Derleyici, başlangıç değerlerinin adedine bakarak dizinin eleman sayısını otomatik olarak hesaplar.

Örnek;

 

Dizinin Eleman Sayısını Elde Etmek

Bir dizinin eleman sayısını, dizi değişkeni üzerinden çağıracağın Length özelliği ile elde edebilirsiniz.

Örnek;

Bir dizideki eleman sayısı dizinin Length özelliği ile elde edilebildiğine göre, for döngüsü kullanılarak dizinin 0’ncı indeksi ile eleman sayısı -1’nci indeksi arasındaki bütün değerler elde edilebilir.Aşağıdaki örnek döngüde ekrana her bir elemanın dizideki sırası(indeks+1) ve değeri yazdırmaktadır.

C# Diziler Örnek;

>Döngü değişkende önce 0 değerini alır.

>Ekrana mevcut elemanın sıra numarası olarak 1’i yazdırır (0+1)

>Yanına dizideki sıfırıncı indeksli elemanın değeri olan 3ü yazdırır.

(Burada dikkat edilmesi gereken noktalardan biri ; döngü değişkeninin  başlangıç değeri olarak 1’le değil 0’la başlamasıdır.Diğer nokta ise döngünün mantıksal koşul deyiminin, dizinin boyutu olan 4 için çalıştırılmamasıdır.Bu durum, koşul deyiminin i<=sayilarim.Lenght yerine i<sayilarim.Lenghh olarak yazılmasından kaynaklanır.)

>Döngü bu şekilde dört değer için de çalışır ve dizideki bütün elemanların değerleri elde edilmiş olur.

Not; İndeks değerini kendin tanımlayarak WHILE döngüsü ilede dizideki bütün elemanlara ulaşmak mümkündür.

Dizinin Elemanlarını foreach Döngüsü İle Elde Etmek

C#, dizilerin içerisindeki dönüp değerlerini elde etmek için bir yol daha önerir: Foreach döngüsü

C# Diziler Örnek:

  • Foreach döngüsünde tanımlanan döngü değişkeni otomatik olarak dizideki her elemanı elde eder.
  • Döngünün ilk iterasyonunda (ilk turunda) belleğe çıkarılan değişkenin tipi dizinin elemanları ile aynı tipte olmalıdır.
  • Foreach,arka tarafta kendi algoritması ile her iterasyonda dizinin bir elemanını okuyup bellekteki geçici değişkene atar.Ardından döngü bloğu içerisinde değişkenin o anki değeri okunur.
  • Foreach dizideki değerleri okuma işini 0. İndeksten başlayıp eleman sayısı -1’ince indekse kadar sırayla yapar.for döngüsünde düşünülmesi gereken ayrıntılar foreach’te olmadığı için dizinin bütün elemanlarını okumada tercih edilebilir.

Bir dizinin elemanları elde edilmek istendiğinde for döngüsünün daha kullanışlı olduğu anlar vardır.

Forech deyimi her zaman bütün diziyi döner.Eğer sadece dizinin belli bir bölümü elde edilmek isteniyorsa (mesela yarısı ya da belli değerler atanmak isteniyorsa (mesela her 3 elemandan biri) bunu for kullanarak yapmak çok aha kolaydır.

Foreach deyimi her zaman dizinin 0.indeksinden eleman sayısı -1.’nci indeksine doğru çalışır.Dolayısıyla eğer dizinin değerleri tersten okumak istenirse for döngüsünü kullanmak gerekir.

Eğer döngü bloğu içerisinde sadece dizideki elemanın değeri değil indeks sayısı da istenirse, b desteği sağlamak için for döngüsü kullanılmak durumundadır.Foreach döngüsü ile bu desteği sağlamak için ekstra bir indeks değişkeni oluşturulup her turda arttırım işlemleri yapılabilir.

Eğer dizi elemanlarının değerleri bir döngü içerisinde güncellenmek istenirse for döngüsü kullanılmak zorundadır.Çünkü foreach deyimindeki döngü değişkeni,dizideki her bir elemanın sadece okunabilir kopyasını elde eder.Bu yüzden de dizi elemanlarının değeri foreach döngüsü içerisinde değiştirilemez.

Dizi Birleştirme

C# Diziler Örnek:           

Dizi Metotları

Diziler, C#’ın kullandığı .NET Framework’ten (C# hazır kütüphaneleri olarak düşünülebilir) gelen, yapısına özgü tanımlanmış özellikleri ve metotları barındırır.

Clear: Bu metot, içine parametreler alarak, dizinin belirtilen alanındaki değerleri temizler. İlk parametre, dizinin kendisidir. İkinci parametre, silme işleminin dizinin hangi indeks’inden başlayarak gerçekleştirileceğidir. Üçüncü parametre toplamda kaç eleman silineceğinin belirtildiği alandır. İkinci ve üçüncü parametreler tamsayı(int) olarak atanmalıdır.

C# Diziler Örnek:

Reverse: Bu metot, dizi elemanlarının sıralamasını indeks sırasına göre tersine çevirir.

Çıktı=R

Sort: Bu metot, dizi elemanlarını dizinin tipine bağlı olarak sıralar. Dizi metinsel ise alfabetik olarak, numerik ise rakamların büyüklüğüne göre sıralama yapılır.

 Çıktı=C

IndexOf : Bu metot, dizi içindeki bir elemanın indeksini döndürür.

Çıktı=2

C# Diziler Konumuz bu kadar arkadaşlar , anlamadığınız örnek , takıldığınız yer olursa yorum olarak atabilirsiniz.Destek olmak için gönderiyi sosyal medya hesabınızdan paylaşabilirsiniz.

http://ramazanakbuz.com/category/soft/

Etiketler

Ramazan Şerif

Selamun Aleyküm Adım Ramazan Şerif Akbuz. Bilişime olan merakım ortaokul yıllarımda başladı.7.Sınıfta Türkiye Eğitim Gönülleri Vakfı aracılığı ile girdiğim Legorobot yarışmasında Türkiye de ilk 20 ye girdik.Bilişime olan heyecanım lise yıllarımda da devam etti.Liseyi Veritabanı Programcılığı bölümünde okudum.Matematiğim zayıftı bende 2 yıllık Omü bilgisayar programcılığına geçiş yaptım.Okulu başarıyla bitirdim.2 Yıldır bir yandan Freelance olarak çalışıyor , bir yandanda iş arıyorum.Bakdım olacağı yok birazda kendimi geliştirme kararı aldım.DGS ile Fırat Üniversitesi Yazılım Mühendisliğine geldim.Maceranın devamında bir baltaya sap olabilmek dileğiyle "Zaman zam anıdır Gülüşüme sende gül üşüme"

İlgili Makaleler

Bir Cevap Yazın

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

Başa dön tuşu
Kapalı
%d blogcu bunu beğendi: