İçindekiler
Dizi Kavramı Nedir ? ( Arrays )
C# Diziler ( Arrays ) Tanımlamış bulunduğumuz diziler bellekte sıra sıra gelen yani art arda yer alan sayı kümelerine dizi diyoruz. Tanımlamış olduğumuz bir dizi içerisindeki bütün elamanlara aynı isimle ulaşılabilmektedir. Söyle ki bu dizi içindeki bütün elamanların isimleri aynı olarak geçmektedir yani bir dizi birden fazla değer tutabilmektedir. Elamanlar arasındaki ayırt edici özellik bellekteki yeridir. Şöyle bir not verebilirim bir dizi bir üniversitesi öğrencisi bir ailenin çocuğu olabildiği gibi aynı zamanda bir iş yerinde de part time çalışabilmektedir.
Diziler ile değişkenler benzer yapıya sahiplerdir. Değişken tanımlanırken değişkenler bellekte bir değer saklamamıza yardımcı olurlar. Diziler de aynı şekilde bellekte değer saklarlar fakat birden fazla değer tutabilirler aynı yukarıda verdiğim örnekteki gibi. Diziler tek boyutlu ve çok boyutlu olmak üzere ikiye ayrılmaktadır.
C#‘da Dizi Tanımlama
dizi tanımlaması yapılırken ilk önce dizi içinde elemanların türleri tanımlanır. Bunlar int, double, String, byte, long, short
olarak belirtilir.
Dizimiz Bellekte Nasıl Yer Alır
Bütün diziler System.Array sınıfından türetilmiştir.
Bir dizi tanımladığımız zaman Array sınıfından bir nesne tanımlamış oluruz.
İnt Türünde Bir Dizi Tanımlayalım
1 2 3 | int[] dizi = { 10, 4, 12, 48, 55,}; Console.WriteLine(dizi[2]); // dizimizin içinde ikinci elamana erişmiştir. Console.Read(); |
Ekran çıktısı
1 | 12 |
Yukarıda Tanımlamış olduğumuz dizi içerisine bazı sayılar atamış bulunmaktayız. Daha sonra ekran çıktısını Console.WriteLine(dizi[2]);
bu kod satırı ile almış bulunmaktayız. Burada köşeli parantez bizim dizimizin içindeki indis alan sayıyı ekran çıktısı olarak vermiş bulunmaktadır. Burada her sayı bir indis almaktadır ilk yazmış olduğumuz sayı ise dizilerin kuralı olarak 0 indisini alarak 0 dan başlamaktadır.
Double Türünde Tanımlama
1 2 3 | double[] dizi = { 10.10, 4.5, 12.1, 48.58, 55, }; Console.WriteLine(dizi[2]); // dizimizin içinde ikinci elamana erişmiştir. Console.Read(); |
Ekran Çıktısı
1 | 12,1 |
Yukarıda double türünde tanımla olarak ondalıktı tanımlamalar yapmış bulunmaktayız. Console.WriteLine(dizi[2]);
kod satırı ile dizimizin ikinci elamanına erişmiş bulunmaktayız.
String Türünde Dizi Tanımlama
1 2 3 | string[] yazı = { "Selamlar", "KodKampüsü" , "Hoşgeldiniz", }; Console.WriteLine(yazı[1]); Console.Read(); |
Ekran çıktısı
1 | KodKampüsü |
string tanımla int tanımlamadan farklı olarak süslü parantez içerisinde çift tırnak işareti kullanarak tanımlanmaktadır. Yapmış olduğumuz tanımlama işleminde string içerisinde yazılar yazdık ve Console.WriteLine(yazı[1]);
kod satırı ile köşeli parantez kullanarak 1 elemanız olan KodKampüsü'nü
çağırmıştır.
For Döngüsü ile Listeleme
Programımız bizden 3 adet şehir ismi girmemizi ve girdiğimiz şehirleri aynı sırada sıralama işlemi yapmaktadır.
1 2 3 4 5 6 7 8 9 10 11 12 | string[] sehir = new string[3]; for (int i = 0; i < 3; i++) { Console.Write("Şehir= "); sehir[i] = Console.ReadLine(); } Console.WriteLine("Şehirler Listesi"); for (int i = 0; i < 3; i++) { Console.WriteLine(sehir[i]); } Console.Read(); |
Ekran çıktısı
1 2 3 4 5 6 7 | Şehir= konya Şehir= ankara Şehir= istanbul Şehirler Listesi konya ankara istanbul |
New Anahtar Sözcüğü ile Dizi Oluşturma Random Seçme
new yani yeni 0-9 arası 10 tane dizi elemanı tanımlamaktayız ve bu elamanlar arasından rastgele birini seçmekteyiz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | string[] isimler = new string[10]; isimler[0] = "ömer"; isimler[1] = "mert"; isimler[2] = "emre"; isimler[3] = "oktay"; isimler[4] = "ihsan"; isimler[5] = "ali"; isimler[6] = "mahmut"; isimler[7] = "mustafa"; isimler[8] = "fatma"; isimler[9] = "ayşe"; for (int i = 0; i < isimler.Length; i++) { Console.WriteLine(isimler[i]); } Console.WriteLine("=================================="); Random rnd = new Random(); int rastgele = rnd.Next(0, isimler.Length); Console.WriteLine("Seçilmiş kişi ; " + isimler[rastgele]); Console.ReadKey(); |
Ekran çıktısı
1 2 3 4 5 6 7 8 9 10 11 12 | ömer mert emre oktay ihsan ali mahmut mustafa fatma ayşe ================================== Seçilmiş kişi ; mert |
Dizileri karşılaştırma
Bu konumuzda tanımlanmış olan dizilerimizin elemanları karşılaştırma yapmaktayız. İki diziyi karşılaştırma işlemi yapmamız gerektiğinde checkEquality
metodunu kullanmamız gerekmektedir.
1 2 3 4 5 6 7 8 9 10 11 12 | public static bool checkEquality<T>(T[] first, T[] second) { return System.Linq.Enumerable.SequenceEqual(first, second); } public static void Main() { int[] ilkdizi = { 1, 2, 3, 4, 5 }; int[] ikincidizi = { 1, 2, 3, 4, 5 }; int[] ücüncüdizi = { 0, 5, 7, 8, 6 }; Console.WriteLine((checkEquality(ilkdizi, ikincidizi)));//ilkdizi ile ikincidizi'yi karşılaştırdık ve sonuç true. Console.WriteLine((checkEquality(ücüncüdizi, ikincidizi))); // ücüncüdizi ile ikincidizi'yi karşılaştırdık sonuç folse |
Ekran çıktısı
1 2 | True False |
Dizilerde Elemanları küçükten büyüğe ve büyükten küçüğe sıralama
Küçükten büyüğe doğru sıralama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | int[] sayilar = { 30, 19, 122, 10, 710, 1, 2, 88 }; Console.Write("Dizinin ilk hali = "); foreach (int deger in sayilar) { Console.Write(deger + " "); } Array.Sort(sayilar); // büyük sayıları sona doğru atlatmak için sıralama yapmak için Console.WriteLine(); Console.Write("Dizinin son hali = "); foreach (int deger in sayilar) { Console.Write(deger + " "); } Console.ReadKey(); |
Ekran Çıktısı
1 2 | Dizinin ilk hali = 30 19 122 10 710 1 2 88 Dizinin son hali = 1 2 10 19 30 88 122 710 |
Büyükten küçüğe sıralama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int[] sayilar = { 30, 19, 122, 10, 710, 1, 2, 88 }; Console.Write("Dizinin ilk hali = "); foreach (int deger in sayilar) { Console.Write(deger + " "); } Array.Sort(sayilar); Array.Reverse(sayilar); // küçükten büyüğe sıralamadaki kodumuzdan farklı olarak Array.Reverse(sayılar); kodunu eklemiş bulunmaktayız. Console.WriteLine(); Console.Write("Dizinin son hali = "); foreach (int deger in sayilar) { Console.Write(deger + " "); } Console.ReadKey(); |
Ekran çıktısı
1 2 | Dizinin ilk hali = 30 19 122 10 710 1 2 88 Dizinin son hali = 710 122 88 30 19 10 2 1 |
Dizilerde Alfabetik Sıralama İşlemi
1 2 3 4 5 | string str = "FARTYUIKHBN"; char[] strchars = str.ToCharArray(); Array.Sort(strchars); str = new string(strchars); ; Console.WriteLine(str); |
char
karakter metodu harfleri sıralamamıza yardımcı olmuştur.
Ekran Çıktısı
1 | ABFHIKNRTUY |
Dilerseniz string str = "FARTYUIKHBN";
tanımlama kısmına harfler arasına random rakamlar koyarak rakalmlar ile harfleri de arka arkaya sıralama yapabilirsiniz ilk önce rakamları küçükten büyüğe daha sonra ise harfleri alfabetik sıralamaya devam edecektir.
TEŞEKKÜRLER…