C# Array Sınıfı

Merhabalar C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde dizi (Array) sınıfını anlatacağım. Hadi başlayalım !
Diziler nerdeyse tüm programlama dillerinde olan birşey ve elbette C#’ta da var. System kütüphanesi altında olan bu sınıf ile istediğiniz herşeyi küme şeklinde tutabiliyor ve sonrasında ister tüm elemanlar üzerinde isterseniz de ihtiyacınız olan eleman yada elemanlar üzerinde işlem yapabilirsiniz. Fakat dizi içerisindeki elemanların veri tipi aynı olmalı. Yani tüm elemanlar string yada integer yada double yada generic tipte olmalı. Tabi object dizileri hariç. C#’taki tüm veri tipleri object özelliği gösterir, dolayısıyla object tipinde veri tutan dizilerde integer ile string tipte veri tutabiliyorsunuz fakat örneğin bi integer sayıyı object dizisinde tutarsanız integera dönüştürmeden sayısal işlem yapamazsınız, sadece object nesnesinin özelliklerini kullanabilirsiniz.
Ayrıca dizilerin tutacağı eleman sayısını diziyi oluştururken belirtmeniz gerekiyor ve belirttiğiniz eleman sayısından daha fazla elemanı dizi içine koyamıyorsunuz. Yani ben başlangıçta 5 elemanlı bi dizi oluşturayım ama 6 eleman ekleyeyim derseniz hata verecektir. Fakat 5 elemanlı bir dizi oluşturup 4 eleman ekleyebilirsiniz, bunda bi sorun yok. Eleman sayısından daha az veri eklediğiniz zaman boş kalan yerlere dizinin tuttuğu veri tipinin default değeri ne ise o eklenir. Yani 10 elemanlı string dizisi oluşturup 5 eleman eklerseniz kalan 5 eleman null, 10 elemanlı integer dizisi oluşturup 5 eleman eklerseniz kalan yerler 0 olarak atanır. Tabi bu Visual Studio için geçerlidir, farklı bi IDE kullandığınızda bu böyle olmayabilir. IDE’nin veri tipi için default değeri ne ise o yapılır.
Bir dizi oluşturmak için
veri_tipi[] değişken = new veri_tipi[eleman_sayısı];
şeklinde bir tanımlama yapmanız gerekiyor. Örneğin 10 elemanlı string dizisi oluşturmak istediğinizde
string[] dizi = new string[10];
şeklinde kod satırı yazmanız gerekmekte. Tabi diziler sadece bu kadar değil, dizilere ait fonksiyonlarda mevcut. Şimdi öncelikle bir tane dizi oluşturalım ve sırayla dizi fonksiyonlarına bi bakalım. Dizimiz şöyle olsun;
string[] dizi = new string[]{"SoftwareSup", "Net"};
Length Özelliği: Dizinin eleman sayısını verir fakat örneğin siz dizinin boyutunu 10 belirlediniz fakat 3 eleman ekleseniz dahi size 10 verecektir. Yani dizinin belirlemiş olduğunuz eleman sayısını verecektir.
Array.IndexOf() Fonksiyonu: Dizi içerisinde arama yapmanızı sağlar. Array tipinde bir ve object tipinde 1 olmak üzere toplam 2 parametre alır ve birinci parametre içinde arama yapmak istediğiniz dizinin adını, ikinci parametrede ise arama yapmak istediğiniz veriyi ister. Ayrıca içinde arama yapılacak dizi, aranan şey ve başlangıç index numarası ie arama yapılacak dizi adı, aranan şey, başlangıç numarası ve adet olmak üzere 2 farklı kullanımı daha vardır. Başlangıç index numarası isteyen kullanımında aramaya dizinin kaçıncı elemanından başlanacağını belirtebiliyorsunuz. Yani tüm dizi içerisinde değilde örneğin 3. index numaralı elemandan sonra aransın derseniz bu kullanım daha faydalı olacaktır. Başlangıç index numarası ve adet parametreleri isteyen kullanımında ise bir önceki kullanımda olduğu gibi dizinin kaçıncı elemanından itibaren arama yapılacağını ve toplamda kaç tane eleman içerisinden arama yapılacağını belirtebiliyorsunuz. Yani örneğin dizinin 3. elemanından itibaren 5 tane eleman arasından arama yapılsın diyebiliyorsunuz. Yani bahsettiğim örnekte 3, 4, 5, 6, 7, 8. elemanlar arasında arama yapılacaktır. Aradığınız şey dizi içerisinde varsa bulunduğu index numarasını, yoksada -1 döndürür.
Array.LastIndexOf() Fonksiyonu: Dizi içerisinde arama yapabileceğiniz bir başka fonksiyondur ve IndexOf() fonksiyonu ile aynı kullanımı vardır. Fakat IndexOf() fonksiyonundan farklı olarak aramaya dizinin sonundan başına doğru yapılırken ilk bulunan elemanın index numarası baştan itibaren hesaplanır ve geriye döndürülür. Yani arama sağdan sola doğru yapılırken index numarası soldan sağa doğru bulunur ve geri döndürülür. Aranan eleman dizi içerisinde yoksa tabiki -1 döndürecektir.
Array.Sort() Fonksiyonu: Dizi içerisindeki elemanları alfabetik olarak küçükten büyüğe doğru sıralar. Ayrıca sıralanacak dizi adı, başlangıç index numarası ve eleman sayısı aldığı bir kullanımı daha vardır. Bu kullanımda dizinin hepsi değil de ikinci parametrede aldığı index numarasından üçüncü parametredeki eleman sayısı kadar olan aralıktaki elemanlar arasında sıralama yapar, kalan elemanları aynen bırakır. Yani örneğin 10 elemanlı bir diziniz var ve başlangıç index numarasının 5, eleman sayısının 3 olduğunu düşünürsek; 5. indexteki elemandan sonra (5. indexteki dahil) 3 elemanı yani 5, 6 ve 7. index numaralarındaki elemanları alfabetik olarak sıralayacak, kalan elemanları aynen bırakacaktır. void tipte olduğu içinde geriye herhangi birşey döndürmez, orijinal dizi üzerinde değişiklik yapar.
Array.Reverse() Fonksiyonu: Diziyi ters çevirir. Yani birinci indexteki eleman dizinin en sonuna, en sondaki eleman en başa gelecek şekilde ters çevirir. Ayrıca başlangıç index numarası ve eleman sayısı aldığı bir kullanımı daha vardır. Bu kullanımda ikinci parametrede aldığı index numarasından itibaren üçüncü parametredeki elemana kadar olan aralığı ters çevirip kalan elemanları aynen bırakır. Örneğin 10 elemanlı bir diziniz var diyelim, başlangıç index numarası 3, eleman sayısı 5 dediniz. O zaman 3. indexten sonra 5 elemanı (3, 4, 5, 6 ve 7. indexteki elemanları) ters çevirip kalan tüm elemanları aynen bırakır. void tipte olduğu için geriye herhangi birşey döndürmez, orijinal dizi üzerinde değişiklik yapar.
Array.Clear() Fonksiyonu: Dizi içerisinden eleman silmeye yarar. Birinci parametre olarak içinde silme yapılacak dizinin adını, ikinci parametrede silinecek ilk elemanın index numarası ve üçüncü olarakta silinecek eleman sayısını parametre olarak alır. İkinci parametredeki index numarasında bulunan elemandan itibaren üçüncü parametredeki eleman sayısı kadar elemanı diziden siler. Örneğin 10 elemanlı bir diziniz olduğunu varsayalım. 3. indexten itibaren 5 eleman silmek istediniz. O zaman 3, 4, 5, 6 ve 7. index numaralı elemanları siler ve 1, 2, 8 ve 9. indexteki elemanları dizide bırakır, onlara karışmaz. Fakat 8 ve 9. indexte bulunan elemanların index numaraları 3 ve 4. indexler boş olduğu için oraya kaydırır. Dizideki tüm elemanları silmek isterseniz 2. parametre olarak 0, 3. parametre olarak dizi.Length verebilirsiniz. void tipte olduğu için geriye herhangi birşey döndürmez, orijinal dizi üzerinde değişiklik yapar.
Evet bu dersimizde bu kadardı, tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.