19 Oca 2016

C#'da Array Sınıfı


Diziler, aynı veri tipine ait birden çok elemanı tutmaya yarayan veri tipleridir. Dizileri belli bir kapasiteye sahip olacak şekilde tanımlarız. Daha sonra indeks numarasını vererek, diziyi tanımladığımız tipte elemanlar ekleyebiliriz.

int[] sinavNotlari = new int[3];
sinavNotlari[0] = 50;
sinavNotlari[2] = 90;
sinavNotlari[1] = 75;
Console.WriteLine(sinavNotlari[2]); //90
  • n boyutlu tanımladığımız bir dizinin en büyük indeks değeri n-1’dir. Çünkü indeks 0’dan başlar. Diziler farklı biçimlerde de tanımlanabilirler;
Dinamik Boyutlu Dizi Tanımlama
  • Diziler farklı şekillerde tanımlanabilir;
int[] sinavNotlari = new int[3] { 50, 70, 90 };
int[] sinavNotlari = { 50, 70, 90 }; //dinamik boyutlu dizi tanımlamak

Matris Tanımlama

int[,] sinavNotlari = new int[2, 3];
sinavNotlari[0, 0] = 1;
sinavNotlari[0, 1] = 2;
sinavNotlari[1, 0] = 50;
sinavNotlari[1, 0] = 90;
sinavNotlari[1, 1] = 70; sinavNotlari[0, 2] = 3; for (int i = 0; i < 3; i++) {
    Console.WriteLine(sinavNotlari[0, i] + " - " + sinavNotlari[1, i]);
}

Yukarıdaki matris aşağıdaki gibi de tanımlanabilir;
int [ , ]  sinavNotlari = { {1, 2, 3}, { 50, 70, 90} };

  • Array tanımlarken mutlaka int tanımlama yapmak gerekmez. Örnek:
string[ ] arkadaslarim = new string [ ] {“Ali”, “Faruk”, “Barış”, “Can”};

  • Bir dizinin sonradan boyutunu değiştirmemiz gerekirse Resize( ) yöntemini kullanmalıyız fakat bunu sürekli yapmamız performans kaybına yol açabilir.
char[] karakterListesi = { 'A', 'B', 'C' };
Array.Resize<char>(ref karakterListesi, 4);
karakterListesi[3] = 'D';

Array Sınıfı Özellikleri
  • Length: Dizide kaç eleman var olduğunu öğrenmek için kullanılır.
  • Rank: Dizinin kaç boyutlu olduğunu öğrenmek için(int[ , ] için 2 döner),
  • Clone( ): Diziyi kopyalamak için,
  • Copy( ): Dizinin bir kısmını kopyalamak için,
  • GetEnumerator( ): LINQ ile birlikte kullanmak için,
  • IndexOF VE LastIndexOf: Dizi içindeki elemanın değerinin ilk ve son pozisyonunu öğrenmek için,
  • Sort( ): Dizi elemanlarını küçükten büyüğe sıralamak için kullanılır.

Hiç yorum yok:

Yorum Gönder