C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT
Diziler
Diziler - Diziler, aynı türdeki verilerin sıralanarak gruğlandırılmasında kullanılan yapılardır. - Dizi içerisinde veriler kaydedilirken, 0 numaralı sıradeğerinden itibaren kaydedilmeye başlanır. - Dizi içerisindeki elemanlara bu index numaraları ile erişim sağlanabilir. - Dizi oluşturulurken dizinin eleman sayısı belirtilmelidir.
Diziler int [ ] numara = new int[10]; // numara adında 10 elemanlı integer türünde bir dizi tanımlanmaktadır. - Dizi elemanlarına değer atama işlemi yapılırken, dizi elemanının index değeri köşeli parantez içerisinde yazılarak istenen dizi elemanına atama yapılabilir.
Diziler string [ ] adsoyad = new string[3]; adsoyad[0] = “Volkan KANAT”; adsoyad[1] = “Ahmet Mehmet TEKİN”; adsoyad[2] = “Fatih SARILALE”;
Diziler - Dizilere tanımlama esnasında da değer ataması yapılabilir. string [ ] adsoyad= {“Volkan” , “Talha”, “Rıfkı”};
Tek Boyutlu Diziler - Tek boyutlu diziler, yalnızca eleman sayısı belirtilerek tanımlanan dizilerdir. - Dizilerin boyutu belirtilmedikçe tek byutlu olarak kabul edilirler. - Diziler konusunun başında anlatılan örnekler tek boyutlu dizilerdir.
Çok Boyutlu Diziler - Tek boyutlu dizileree benzer şekilde tanımlanır ve kullanılırlar. Farklı olarak virgül karakteri kullanılarak dizi boyutu belirlenir ve kullanılır. string [ , ] adsoyad = new string[3,3]; - Yukarıdaki satırda 2 boyutlu 3’er elemanlı string türde adsoyad isimli bir dizi tanımladık. Dizinin toplam eleman sayısını boyut x eleman sayısı şeklinde bulabiliriz. (3 x 3 = 9)
Çok Boyutlu Diziler string [ , ] adsoyad = { {“Volkan” , “KANAT”}, { “Mustafa”, “AKSU”}, { “Enver”, “ARSLAN” } }; // 2x3=6 - Çok boyutlu dizileri dikdörtgensel ve düzensiz olmak üzere iki gruba ayırabiliriz.
Dikdörtgensel Diziler -Dikdörtgensel diziler her satırında eşit sayıda elemanın bulunduğu dizilerdir. Şekli dikdörtgene benzediği için bu isimle adlandırılırlar. int [ , ] dizi = new int[3,4] {{1,2,3,4}, {1,2,3,4}, {1,2,3,4} } ;
Uygulama -Yukarıda tanımladığımız örnek dizi elemanlarını, konsol ekranında tek tek listeleyen konsol uygulamasının kodlarını yazalım.
Uygulama static void Main(string[] args) { int [ , ] dizi = new int[3,4] {{1,2,3,4}, {1,2,3,4}, {1,2,3,4} } ; for(int i=0; i<dizi.GetLength(0); i++){ for(int j=0; j<dizi.GetLength(1); j++){ Console.Write(dizi[i,j]); if(j == dizi.GetLength(1)-1) Console.WriteLine(); } Console.ReadLine();
Düzensiz Diziler -Her bir satırı farklı uzunlukta olan diziler düzensiz diziler olarak adlandırılırlar. - İç içe diziler şeklinde tanımlanırlar. Yani bir dizinin elemanları tanımlanırken her bir elemanın içerisinde başka bir dizinin elemanları tanımlanabilir. int [] [] düzensiz_dizi = { new int[] { 1 }, new int[] { 1, 2, 3 }, new int[] { 1, 2 } };
Uygulama - Düzensiz bir dizi oluşturarak içerisindeki elemanları listeleyen konsol uygulamasının kodlarını yazalım.
Uygulama static void Main(string[] args) { int [] [] duzensiz_dizi = { new int[] { 1}, new int[] { 1, 2, 3}, new int[] { 1, 2} } ; foreach(var satir in duzensiz_dizi) foreach(var eleman in satir) Console.Write(“{0} ”, eleman); Console.WriteLine(); } Console.ReadLine();
Dizileri Yeniden Boyutlandırma - Bir dizi boyutu belirterek tanımlanabildiği gibi parantez içi boş bırakılarak da boyutu belirtilmeden tanımlanabilir. - Gerek boyutu belirtilerek tanımlanmış olsun gerekse boyutu belirtilmeden tanımlanmış olsun program içerisinde boyutu yeniden belirlenebilir.
Dizileri Yeniden Boyutlandırma string [ ] adsoyad = new string[2]; adsoyad[0] = “Volkan”; adsoyad[1] = “Mehmet”; adsoyad =new string[3]; adsoyad[2] = “Faruk”;
CreateInstance Metodu - Yeni bir diziyi, değişken tipini ve eleman sayısını belirleyerek tanımlamak için kullanılan metoddur. Array.CreateInstance(Değişken Türü, Eleman Sayısı, Boyut)
CreateInstance Metodu static void Main(string[] args) { Array okulturu = Array.CreateInstance (typeof(string), 3); string [] okulturleri = (string[])okulturu; okulturleri[0] = (“Endüstri Meslek”); okulturleri[1] = (“Teknik”); okulturleri[2] = (“Anadolu Teknik”); Console.Write(okulturleri[1]); Console.ReadKey(); }
IsArray Metodu - Bir değişken dizi değişkeni olup olmadığını anlamak amacı ile kullanılan metoddur. - Geriye true ya da false olmak üzere boolean değer göndürür.
IsArray Metodu static void Main(string[] args) { string[] okulturu = {“Anadolu”, “Meslek”, “Teknik”}; string ad = “Volkan”; Type tip; tip = okulturu.GetType(); Console.WriteLine(tip.IsArray); tip = ad.GetType(); Console.ReadKey(); }
SetValue Metodu - Dizi elemanlarına değer atamak amacı ile kullanılan metoddur. SetValue(“Atanacak değer”, atanacak index numarası);
SetValue Metodu static void Main(string[] args) { Array okulturleri = Array.CreateInstance(typeof(string), 3); okulturleri.SetValue(“Endüstri Meslek”, 0); okulturleri.SetValue(“Teknik”, 1); okulturleri.SetValue(“Anadolu Teknik”, 2); Console.Write(okulturleri.GetValue(2)); Console.ReadKey(); }
GetValue Metodu - Dizi içerisindeki elemanlara erişmek amacı ile kullanılır. GetValue(index değeri);
GetValue Metodu static void Main(string[] args) { Array okulturleri = Array.CreateInstance(typeof(string), 3, 3); diller.SetValue(“VB.NET”, 0, 0 ); diller.SetValue(“C#”, 0, 1 ); diller.SetValue(“C++”, 0, 2 ); diller.SetValue(“Python”, 1, 0 ); diller.SetValue(“Perl”, 1, 1 ); diller.SetValue(“Ruby”, 1, 2 ); diller.SetValue(“ASP.NET”, 2, 0 ); diller.SetValue(“JavaScript”, 2, 1 ); diller.SetValue(“Silverlight”, 2, 2 ); Console.WriteLine(diller.GetValue(0, 1)); Console.ReadKey(); }
Join Metodu - Dizi içerisindeki değerlerin hepsini bir string değişkene, belirtilen ayırıcı karakter kullanarak aktaran metoddur. String.Join(ayırıcı karakter, dizi değişken adı)
Uygulama - ListBox içerisindeki değerleri join metodu ile karakterini kullanarak bir TextBox içerisine aktaran form uygulamasının kodlarını yazalım.
Uygulama private void button1_Click(object sender, EventArgs e) { string [] diller; diller = new string[listBox1.Itens.Count]; byte i; for(i=0; i<= listBox1.Items.Count – 1; i++) diller[i] = listBox1.Items[i].ToString(); } textBox1.Text = string.Join(“,”, diller);
Contains Metodu - Bir dizi içerisinde bir elemanın var olup olmadığını bulma amacı ile kullanılır. Geriye boolean bir değer döndürür. - Eğer aranan değer bulundu ise true, bulunmadı ise false değeri dönecektir. Contains(aranan değer)
Contains Metodu static void Main(string[] args) { string aranan; string[] isimler = new string[4]; isimler[0] = “Hasan”; isimler[0] = “Murat”; isimler[0] = “Talha”; isimler[0] = “Onur”; Console.Write(“Aranan degeri giriniz: ”); aranan = Console.ReadLine(); if (isimler.Contains(aranan) == false){ Console.Write(“Aranan deger bulunamadı ”); } else{ Console.Write(“Aranan deger bulundu ”); } Console.ReadKey(); }
BinarySearch Metodu - Dizi içerisinde aranan elemanın index numarasını geriye döndüren metoddur. - Bu metod ile arama yapabilmek için üzerinde arama işlemi yapılacak dizinin sıralı olması gerekir. BinarySearch(Arama yapılacak dizi değişkenin adı, aranacak değer, aramanın başlayacağı index değeri)
BinarySearch Metodu static void Main(string[] args) { int indexno; string aranan; Array okulturu = Array.CreateInstance(typeof(string), 3); okulturu.SetValue(“Endüstri Meslek”, 0); okulturu.SetValue(“Teknik”, 1); okulturu.SetValue(“Anadolu Teknik”, 2); Console.Write(“Aranan degeri giriniz: ”); aranan = Console.ReadLine(); indexno = Array.BinarySearch(okulturu, aranan.ToString()); if(indexno < 0){ Console.Write(“Aranan deger bulunamadı“); } else{ Console.Write(“Aranan deger bulundu. İndex degeri = “ + indexno); } Console.ReadKey(); }
Volkan KANAT Web: http://volkankanat.com/ Mailito: volkan_kanat@yahoo.com Twitter: https://twitter.com/VolkanKanatMuh Volkan KANAT
Dinlediğiniz İçin Teşekkürler