C# Dizi Sınıfı Metotlarına geçmeden önce dizilerin nasıl kullanıldığına veya diziler ile ilgili örneklere göz atmak isterseniz önceki yazılarımda yazdığım C#’da diziler konusuna göz atabilirsiniz. Şimdi C# Dizi Sınıfı Metotlarımıza geçelim. Diziler için bir çok metot sunulur ve bu metotlar işlerimizi kolaylaştırır.
BinarSearch
BinarySearch metodunun iki önemli kullanım biçimi vardır.
| 1 | BinarySearch(Array dizi, object nesne); | 
Bu yapı, dizi içerisinde nesneyi arar; eğer aranan nesne bulunursa bulunduğu index ile geri dönülür. Eğer bulunamazsa negatif bir sayıyla geri dönüş yapar.
| 1 | BinarySearch(Array dizi, int baslangic, int uzunluk, object nesne); | 
| 1 2 3 4 5 6 7 8 9 | string[] dizi = { "Emre", "Mert", "Ali", "Oktay", " Ömer", "Osman", "Mustafa" };             Console.Write("=> Aranacak İsmi Giriniz =");              string isim = Console.ReadLine();             Array.Sort(dizi);             int indeks = Array.BinarySearch(dizi, isim);              if (indeks < 0)                 Console.WriteLine("=> Aranan isim dizide bulunamadı! ");             else                  Console.WriteLine("=> Aranan isim dizinin {0}. elemanında bulundu...", indeks); | 
Ekran Çıktısı
| 1 2 | => Aranacak İsmi Giriniz =Oktay => Aranan isim dizinin 5. elemanında bulundu... | 
Clear
Clear Kullanmak dizimizde boşaltma işlemi yapmak için kullanılır. Clear(dizi, index, length) olarak girilecek olan 3 adet parametre verilerine göre işlem yapar.
| 1 2 3 4 5 6 7 8 | int[] numaralar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};             Array.Clear(numaralar,  1, 5); //birinci index ile beşinci index dahil aralardaki sayılara boşaltma işlemi uyğulandı.             foreach (var numarası in numaralar)             {                 Console.WriteLine(numarası);             }             Console.ReadLine(); | 
Ekran çıktısı
| 1 2 3 4 5 6 7 8 9 10 11 | işlem sonrası dizi hali           İşlem öncesi dizi hali  1                                 1 0                                 2 0                                 3 0                                 4 0                                 5 0                                 6 7                                 7 8                                 8   9                                 9 10                                10 | 
Clone
Dizinin bir bit kopyasını oluşturur. Yani bizim yazmış olduğumuz dizinin çıktısını alırken bir tanede kendisi aynı diziden otomatik olarak çıktı verir ve iki adet aynı dizi çıktısı alırız.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | int[] Rastgele = new int[10];             Random r = new Random();             for (int sıra = 0; sıra < 10; sıra++)                 Rastgele[sıra] = r.Next(40);              Console.WriteLine("orjinal kodumuz");             foreach (int eleman in Rastgele)                 Console.Write(eleman + " ");             Console.WriteLine("\n");             int[] Notlar = new int[10];             Notlar = (int[])Rastgele.Clone();             Console.WriteLine("kopya kodumuz");             foreach (int eleman in Notlar)                 Console.Write(eleman + " "); | 
Burada Kodumuz içerisinde 10 adet eleman tanımladık ve rastgele sayılar vermesini sağlamış bulunmaktayız.
Ekran çıktısı
| 1 2 3 4 5 | orjinal kodumuz 35 23 31 33 13 0 5 9 5 21 kopya kodumuz 35 23 31 33 13 0 5 9 5 21 | 
Copy
Dizinin istenilen eleman aralığını başka bir diziye kopyalamaya yarar.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | string[] sayilar = new string[8];             sayilar[0] = "11";             sayilar[1] = "12";             sayilar[2] = "40";             sayilar[3] = "7";             sayilar[4] = "16";             sayilar[5] = "55";             sayilar[6] = "9";             sayilar[7] = "28";             string[] diziler = new string[4];             Console.WriteLine(" sayılar değişkeni kopyalandı ");             Array.Copy(sayilar, diziler, 4);             for (int i = 0; i < diziler.Length; i++)             {                               Console.Write(i);                 Console.WriteLine(" => diziler değişkenine kopyalandı");             }             Console.Read(); | 
Ekran Çıktısı
Bu örneğimizde sayilar’daki 0 ile 3 arasındaki elamanlarımızı diziler kısmına kopyalamış bulunmaktayız.
| 1 2 3 4 5 |  sayılar değişkeni kopyalandı 0 => diziler değişkenine kopyalandı 1 => diziler değişkenine kopyalandı 2 => diziler değişkenine kopyalandı 3 => diziler değişkenine kopyalandı | 
CopyTo
CopyTo metodu ile bir dizinin tamamını ,başka bir dizinin istenilen yerine kopyalanabiliriz.
| 1 2 3 4 5 6 7 8 |             string value = "Merhaba Nasılsın?";             char[]kopya = new char[20];             Console.WriteLine(" Orjinal İçerik ");             Console.WriteLine(" Merhaba Nasılsın ? ");             value.CopyTo(7, kopya, 1, 9);             Console.WriteLine(" Kopya ");             Console.WriteLine(kopya);             Console.Read(); | 
value.CopyTo(7, kopya, 1, 9); yukarıdaki kodumuzun içerisindeki kısmı değiştirerek hangi karakter değerlerini kopyalamak isterseniz ona göre ayarlayabilirsiniz.
Ekran Çıktısı
| 1 2 3 4 |  Orjinal İçerik  Merhaba Nasılsın ?  Kopya   Nasılsın | 
GetLength
Dizideki toplam eleman sayılarını verir.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Array MyArray1 = Array.CreateInstance(typeof(int), 5);             // 3 boyutlu bir dizi              Array MyArray2 = Array.CreateInstance(typeof(int), 5, 3, 2);             Array BossArray = Array.CreateInstance(typeof(Array), 2);             BossArray.SetValue(MyArray1, 0);             BossArray.SetValue(MyArray2, 1);             int i = 0, j, rank;             foreach (Array anArray in BossArray)             {                 rank = anArray.Rank;                 if (rank > 1)                 {                     Console.WriteLine("Uzunlukları {0:d} boyut dizisi[{1:d}]", rank, i);                     // her boyutun uzunluğunu göster                     for (j = 0; j < rank; j++)                     {                         Console.WriteLine("Boyut uzunluğu ({0:d}) = {1:d}", j, anArray.GetLength(j));                     }                 }                 else                 {                     Console.WriteLine("Tek boyutlu dizinin uzunlukları[{0:d}]", i);                 }                 // tüm dizinin veya tüm boyutların toplam uzunluğunu göster                 Console.WriteLine("   Dizinin toplam uzunluğu = {0:d}", anArray.Length);                 Console.WriteLine();                 i++;             } | 
Ekran Çıktısı
| 1 2 3 4 5 6 7 8 | Tek boyutlu dizinin uzunlukları[0]    Dizinin toplam uzunluğu = 5 Uzunlukları 3 boyut dizisi[1] Boyut uzunluğu (0) = 5 Boyut uzunluğu (1) = 3 Boyut uzunluğu (2) = 2    Dizinin toplam uzunluğu = 30 | 
GetValue
Dizideki ilgili eleman değerini verir.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |  // Tek boyutlu bir dizi oluşturur ve başlatır.             String[] myArr1 = new String[5];             // Öğeyi dizin 2'te ayarlar.             myArr1.SetValue("bir", 1);             Console.WriteLine("[1]:   {0}", myArr1.GetValue(1));             // İki boyutlu bir dizi oluşturur ve başlatır.             String[,] myArr2 = new String[5, 5];             // Öğeyi 1,2 dizininde ayarlar.             myArr2.SetValue("bir-iki", 1, 2);             Console.WriteLine("[1,2]:   {0}", myArr2.GetValue(1, 2));             // Üç boyutlu bir dizi oluşturur ve başlatır.             String[,,] myArr3 = new String[5, 5, 5];             // Öğeyi 1,2,3 dizininde ayarlar.             myArr3.SetValue("bir-iki-üç", 1, 2, 3);             Console.WriteLine("[1,2,3]:   {0}", myArr3.GetValue(1, 2, 3)); | 
Ekran Çıktısı
| 1 2 3 | [1]:   bir [1,2]:   bir-iki [1,2,3]:   bir-iki-üç | 
IndexOf
Hazırlamış olduğumuz Dizi içindeki harf ya da kelimeleri aramamıza yardımcı olur. Eğer ki harf ya da kelimeyi bulabilirse bulduğu ilk indexi gönderir. Bulamaz ise geriye -1 değer göndermiş olur.
| 1 2 3 4 5 6 7 8 9 10 11 12 | string[] sayilar = new string[7];             sayilar[0] = "1";             sayilar[1] = "2";             sayilar[2] = "4";             sayilar[3] = "5";             sayilar[4] = "88";             sayilar[5] = "19";             sayilar[6] = "76";             Console.Write("=> Bulmuş olduğumuz index ; ");             Console.WriteLine(Array.IndexOf(sayilar, "19"));             Console.Read(); | 
Ekran Çıktısı
| 1 | => Bulmuş olduğumuz index ; 5 | 
Eğerki Console.WriteLine(Array.IndexOf(sayilar, “19”)); tırnak içine 19 yazdığımız değere tanımlı olmayan bir sayı yazarsak -1 değerini alırız.
Reverse
Reverse yazmış olduğumuz dizimizi tesri bir şekilde sıralanmış şekline çevirerek tekrardan yazdırmamızı sağlayan metottur.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //10 elemanlı bir dizi tanımladık.             int[] sayilar = new int[10];             // döngü kurma kısmı              for (int i = 0; i < 10; i++)// 10 adet eleman tanımamız için              {                 Console.Write("-");                 Console.Write((i + 1) + ("- Sayı Giriniz ; "));                 sayilar[i] = Convert.ToInt32(Console.ReadLine()); //Klavyeden sayı girişi yapılıyor              }             //Diziye girilen değerler küçükten büyüğe sıralanıyor               Array.Sort(sayilar);             //küçükten büyüğe sıralanan değerler tersine sıralanarak büyükten küçüğe sıralanıyor               Array.Reverse(sayilar);             Console.WriteLine("--------------------------");             Console.WriteLine("Sayıların Sıralanmış Hali");             Console.WriteLine("--------------------------");             //Dizi sıralı hali ekrana yazdırılması için              foreach (int sayi in sayilar)                 Console.WriteLine(sayi); | 
Ekran Çıktısı
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | -1- Sayı Giriniz ; 80 -2- Sayı Giriniz ; 950 -3- Sayı Giriniz ; 650 -4- Sayı Giriniz ; 45 -5- Sayı Giriniz ; 175 -6- Sayı Giriniz ; 84 -7- Sayı Giriniz ; 99 -8- Sayı Giriniz ; 77 -9- Sayı Giriniz ; 10 -10- Sayı Giriniz ; 7 -------------------------- Sayıların Sıralanmış Hali -------------------------- 950 650 175 99 84 80 77 45 10 7 | 
SetValue
Bir dizinin bir elemanına değer atamak için kullanılır ve tek boyutlu veya çok boyutlu bir dizideki belirli bir değerin nasıl ayarlanacağını veya alınacağını göstermek için kullanılır.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // Tek boyutlu bir dizi oluşturur ve başlatmak için.             String[] myArr1 = new String[5];             // 1. dizindeki öğeyi ayarlamamız için.             myArr1.SetValue("bir", 1);             Console.WriteLine("[1]:   {0}", myArr1.GetValue(1));             // İki boyutlu bir dizi oluşturmak ve başlatmak için.             String[,] myArr2 = new String[5, 5];             // öğeleri 1 ve 2 dizininde ayarlar.             myArr2.SetValue("bir-iki", 1, 2);             Console.WriteLine("[1,2]:   {0}", myArr2.GetValue(1, 2));             // Üç boyutlu bir dizi oluşturmak ve başlatmak için             String[,,] myArr3 = new String[5, 5, 5];             // Öğeleri 1,2,3 dizininde ayarlamak için.             myArr3.SetValue("bir-iki-üç", 1, 2, 3);             Console.WriteLine("[1,2,3]:   {0}", myArr3.GetValue(1, 2, 3)); | 
Ekran Çıktısı
| 1 2 3 | [1]:   bir [1,2]:   bir-iki [1,2,3]:   bir-iki-üç | 
Sort
Bir boyutlu dizilerde sıralama yapar.
| 1 2 3 4 5 6 7 8 | string[] dizi = { "Emre", "Mert", "Ali", "Mustafa", "Ömer", "Osman", "Oktay" , "oguz" };             Console.WriteLine("Dizinin Karışık Elemanları\n------------------");              foreach (string s in dizi)              Console.WriteLine(s);              Array.Sort(dizi);             Console.WriteLine();             Console.WriteLine("Sıralanmış Dizinin Elemanları\n------------------");              foreach (string s in dizi) Console.WriteLine(s); | 
Ekran Çıktısı
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Dizinin Karışık Elemanları ------------------ Emre Mert Ali Mustafa Ömer Osman Oktay oguz Sıralanmış Dizinin Elemanları ------------------ Ali Emre Mert Mustafa oguz Oktay Osman Ömer | 
CreateInstance
Yeni bir dizi nesnesi oluşturur.
| 1 2 3 4 5 6 7 8 9 | Array dizi = Array.CreateInstance(typeof(int), 3, 2, 1);             Random r = new Random();             for (int i = 0; i < dizi.GetLength(0); i++)                              for (int j = 0; j < dizi.GetLength(1); j++)                     for (int k = 0; k < dizi.GetLength(2); k++)                      {                         dizi.SetValue(r.Next(10, 20), i, j, k);                         Console.WriteLine("dizi[{0},{1},{2}]={3,3}", i, j, k, dizi.GetValue(i, j, k));                     } | 
Ekran Çıktısı
| 1 2 3 4 5 6 | dizi[0,0,0]= 12 dizi[0,1,0]= 15 dizi[1,0,0]= 17 dizi[1,1,0]= 17 dizi[2,0,0]= 12 dizi[2,1,0]= 19 | 
Array dizi = Array.CreateInstance(typeof(int), 5, 4, 3); // Tam sıralı şekilde almak isterseniz sıra atlamadan yazdırmak için böyle ardışık rakamlar yazarak yapabilirsiniz. Anlayacağınız 5*4*3 = 60 tane çıktı verecektir. Burayı isteğinize göre değiştirebilirsiniz.
TEŞEKKÜRLER…
DİLERSENİZ JAVA , HTML & CSS KONULARINA GÖZ ATABLİRSİNİZ…





 
							 
				