Respond needs javascript to run. To find out more click here
C#.NET’te Diziler nedir resimli anlatım » senderEventArgs, button1Clickobject, Jagged, Burada, Double, Diziler » Serdar Demir Uefa Maçları Canlı İzle
RSS
 

C#.NET’te Diziler nedir resimli anlatım

24 Eki

C#.NET’TE DİZİLER   Değişkenlerin nasıl taımlanabileceğini bir önceki makalemizde görmüştük ama birçok durumda değişkenleri tek başına tanımlamamız yetersiz olacaktır örneğin 1000 kişilk bir okuldaki

private void button1_Click(object sender,EventArgs e)

{

Double[] dizi; // Burada diziyi tanımlıyoruz

dizi=new Double[10]; // Burada da diziyi boyutlandırıyoruz

}

Burada 10 elemalı bir dizi tanımladık ilk elemanın indis numarası 0 son elemanın indis numarası ise 9 dur.

Yukarıda iki satırda yaptığımız dizi tanımlama işini tek satırda da yapabilirdik

Double[] dizi=new Double[10];

şeklinde.
Dizi Değişkenlerine Varsayılan Değer Atamak

Dizi değişkenleri taımlandığı anda ilk değer atanabilir bununla ilgili örneğimizi yapalım.

private void button1_Click(object sender,EventArgs e)

{

int[] dizi=new int[]{10,20,30};

}

Bu şekilde tanımlanan dizilerde boyut belirtmeye gerek yok eleman sayısı dizinin boyutunu belirtir.

Çok Boyutlu Diziler

Gelişmiş projelerde işimizi çok kolaylaştıracak olan çok boyutlu diziler tanımlama açısından tek boyutlu dizilerden pekte farklı olmamakla beraber biraz daha karmaşıktır.Dizilerin bizi birsürü değişken tanımlamaktan kurtardığı gibi çok boyutlu dizilerde bizi birsürü dizi tanımlamaktan kurtarır.Şimdi bir çok boyutlu dizi tanımlayalım.

private void button1_Click(object sender,EventArgs e)

{

int[,] dizi=new int[2,3]{{1,2,3},{4,5,6}};

}

Yukarıda 2′ye 3′lük bir çok boyutlu dizi tanımladık burada

dizi[1,1]=1;

dizi[2,1]=4;

dizi[1,3]=3;

değerlerini verir.

Çok Boyutlu Dizileri Yeniden Boyutlandırmak

C#’da diziler önce tanımlanıp daha sonra eleman sayısı belirlendiği için bu diziler aynı zamanda dinamik dizi olarak ta kullanılabilirler.Ancak yeniden boyutlandırılan bir dizinin önceki değerleri silinir.

private void button1_Click(object sender,EventArgs e)

{

int[,] dizi={{1,2,3},{4,5,6}};

dizi=new int[]{{10,20,30,40},{50,60,70,80}};

}

burada dizinin ilk değerleri silinerek sonradan girilen değerler dizin asıl değerleri oldu C# da dizileri istediğiniz kadar tekrar boyutlandırabilirsiniz.

Not:C#’da istenilen boyutta dizi tanımlanabilir ancak programcıların yazılmamış kanunlarına göre en fazla 5 boyutlu dizi tanımlanır daha fazlası programlar açısından yararından fazla zarar verir.

Şimdide 3 boyutlu bir dizi tanımlayaım ve bir değer atayalım.

private void button1_Click(object sender,EventArgs e)

{

Double[,,] dizi=new int[2,3,5];

dizi[1,2,4]=27;

dizi[2,1,1]=21;

int sonuc=dizi[1,2,4]+dizi[2,1,1]; // sonuç=48 olur

}

Jagged Diziler

Jagged diziler matrix dizlerden farklı olarak bellekten tasarruf etmemizi sağlar ve performansı olumlu yönde etkiler .Örneğin bir isim dizimiz olsun ve bu diziye 5 isim girecek olalım matrix dizi yaptığımızda dizinin boyunu en uzun isme göre belirleyecektik yani Ali Veli Hakan Kemalttin Mustafa isimlerini verecek olalım bu durumda en uzun isim olan Kemalletin’e göre uzunluğu belirleyecektik ve dizimizi şu şekilde tanımlayacaktık

dizi[5,10] diyecektik 5 isim ve en uzun isimin sığacağı 10 karkterlik sütun alanı.Bu durumda şöyle bir problemimiz olacaktı aslında problem sayılmaz ama fazladan bellek kullanmamıza neden olur.Peki ama nasıl ?

A l i _ _ _ _ _ _ _

V e l i _ _ _ _ _ _

H a k a n _ _ _ _ _

K e m a l e t t i n

M u s t a f a _ _ _

İşte tüm bu (_) ler fazladan kullanılan bellekler işte Jagged ile bu fazlalıklardan kurtulacağız.

Jagged dizileri tanımlanırken bazı durumlara dikkat etmemiz gerekiyor örneğin

Satır sayısı belli olacağı için dizi tanımlanırken satır sayısı yani ilk değer kesinlikle verilmeli

private void button1_Click(object sender,EventArgs e)

{

string[][] jagged_dizi=new string[5][];

jagged_dizi[0]=new string[3]; // ilk değer 3 karakter uzunluğunda (Ali)

jagged_dizi[1]=new string[4]; // ikinci değer 4 karakter uzunluğunda (Veli)

}

Dizilerle İlgili İşlemler

a)Dizinin Eleman Sayısını Öğrenmek

Bir dizinin eleman sayısını Length ile öğreniriz.

private void button1_Click(object sender,EventArgs e)

{

int[] dizi=new int[]{10,20,30};

int deger=dizi.Length; // 3 değerini döndürür

}

b)Dizinin Boyutunu Öğrenmek

Bir dizinin boyutunu öğrenmek için Rank kullanılır.

private void button1_Click(object sender,EventArgs e)

{

int[,,] dizi=new int[2,3,4];

int deger=dizi.Rank; // 3 değerini döndürür

}
 
5 Comments

Posted in C#, Makaleler

 

Leave a Reply

 

 
  1. murtaza

    19 Aralık 2009 at 22:49

    merhabalar hocam dizilerle ilgili gayet guzel bi anlatım olmus tesekkurler ancak benim bi sorum olacak benim dinamik bir diziye ihtiyacım var ve for dongusu içindeki elemanları her donuste bu diziye eklemek istiyorum nasıl yapabilirim cevaplarsanız sevinirim şimdiden teşekkürler

     
  2. yuhubaa

    20 Aralık 2009 at 08:10

    int i;
    int[] dizi=new int[20];
    for(i=0;i<20;i++)
    {
    dizi[i]=i;
    }
    en basit haliyle bu olur sana başka bir yolda anlatayım using system.collection kütüphanesini eklersin

    ArrayList yeni = new ArrayList();
    yeni.Add(12);
    yeni.Add(22);
    diyerek te istediğin yerde arrayliste ekleme yapabilirsin

     
  3. anil

    04 Ocak 2010 at 17:05

    Süpersiniz.Ama serdar bey ben örneğin 10 tane boyutlu bir diziye kendim tek tek textboxla eklemek istiyorm nası yapcam lütfen yardım edinnn

     
  4. yuhubaa

    05 Ocak 2010 at 03:05

    10 boyutlu dan kastın eger bu ise;
    int[,] dizim = new int[3,2]; diyerek diziyi tanımlarsın
    dizim[0,0]=”serdar”;
    dizim[0,1]=”denir”;

    şeklinde butonun click olayıyla eklersin yada döngü ile eklersin

     
  5. anil

    05 Ocak 2010 at 09:29

    Teşekkür ederim serdar bey peki ben asp deki randomize vardıya hiç aynı sayıyı üsremiyodu asp.nette ney onun kodu ?