System ad uzayı içinde yer alan Array C# daki tüm diziler için temel bir sınıftır.Array metotları kullanılarak standar diziler veya
kendi oluşturduğumuz dizileri kullanabiliriz.System.Collection uzayı içinde kullanılabilir arayüzler şunlardır.IClonable,ICollection,IEnumarable ve IList.
Dizilerde Sıralama ve Arama İşlemleri
En sık kullandığımız yapıların başında takdir edersiniz ki sıralama gelir.Hal böyle oluncada Array sınıfı ile sıralama metotlarından
oluşan büyük bir bölümü destekler.Array içinde Sort() özelliği ile sıralamaya dair birçok işlemi çok rahat biçimde gerçekleştirebiliyoruz.
Öyle ki bir diziyi veya dizi içindeki herhangi bir keyword u sıralayabiliriz. BinarySearch özelliğini kullanarak da son derece hızlı ve kullanışlı aramalar
yapabiliriz.Şimdi bu metodları kapsayan bir uygulamayı inceleyelim.
using System;
namespace dmarraylist
{
class Program
{
public static void Main()
{
int[] numaralar = { 1, 2, 9, 54, -7, 257, 0, 12, 84, 21, -765 };
Console.Write("Normal Hali:"); //Orjinal hali
foreach (int i in numaralar)
{
Console.Write(i + "");
Console.WriteLine();
}
Array.Sort(numaralar); //Numaralar adlı diziyi sırala
Console.Write("Sıralanmış hali:");
foreach (int i in numaralar)
{
Console.Write(i + "");
Console.WriteLine();
}
int dm = Array.BinarySearch(numaralar, 12); // !2 yi ara
Console.WriteLine("Arama Sonuçları:" + dm);
}
}
}
Dizileri Terse Çevirme İşlemi
Çoğu zaman dizilerle uygulama yaptığımızda terse çevirme yani reverse işlemini kullanırız.Bunu default olarak yapmak istediğimizde array yapısına göre oldukça zahmetli olucaktır.
Örneğin artan sırada sıralanmış bir diziyi , azalan sırada bir diziye dönüştürebiliriz.Aynı zamanda random olarak da değerler döndürebiliriz.Şimdi bu söylediklerimizi aşağıdaki uygulamamızda görelim.
using System;
namespace dmarraylist
{
class reverse
{
public static void main()
{
int[] numaralar = { 1, 2, 3, 4, 5, 6, 7 };
Console.Write("Orjinal Sıra:"); //Orjinal Sıra
foreach (int i in numaralar)
{
Console.Write(i + "");
Console.WriteLine();
}
Array.Reverse(numaralar); //Bütün diziyi terse çevir.
Console.Write("Tersten Sıralı Dizi:"); // Tersten Sıralanmış diziyi göster.
foreach (int i in numaralar)
{
Console.Write(i + "");
Console.WriteLine();
}
Array.Reverse(numaralar, 3, 6); //Belirlenen aralığı ters çevir.
Console.Write("İstenilen Sıra:");
foreach (int i in numaralar)
{
Console.Write(i + "");
Console.WriteLine();
}
}
}
}
Dizilerde Kopyalama İşlemi
Yine yukarıdaki verilere ek olarak dizi kopyalama işlemleri de , array sınıfı ile çok rahat bir şekilde yapılmakta.Bir diziyi, başka bir
diziye kopyalamak yaygın olarak kullandığımız yöntemlerdendir.Aşağıdaki uygulamamızla ne kadar kolay bir şekilde kopyalama işlemi gerçekleştireceğimizi
görelim
using System;
namespace dmarraylist
{
class copy
{
public static void main()
{
int[] kaynak = { 1, 2, 3, 4, 5, 6, 7 };
int[] kopya = { 15,16,17,18,19,20 };
int[] kaynak2 = { -1, -2, -3, -4, -5, -6, -7 };
Console.Write("Kaynak Dizi:"); //Kaynağı göster
foreach(int i in kaynak)
{
Console.Write(i + "");
Console.WriteLine();
}
Console.Write("Kopya Dizi:");//Kopyayı göster
foreach(int i in kopya)
{
Console.Write(i + "");
Console.WriteLine();
}
Array.Copy(kaynak, kopya, kaynak.Length); //Bütün diziyi topla...
Console.Write("Kopya Dizi:"); //Kopyayı göster.
foreach (int i in kopya)
{
Console.Write(i + "");
Console.WriteLine();
}
Array.Copy(kaynak2, 2, kopya, 3, 2); //Belirlenen hedefin ortasına kopyala.
Console.Write("Kopya Dizi:"); //Kopyayı göster
foreach (int i in kopya)
{
Console.Write(i + "");
Console.WriteLine();
}
}
}
}
Bu makalemizinde sonuna geldik.Görüldüğü gibi C# kullanarak Array sınıfı ile işlemleri gerçekleştirmek son derece basit.Sizin için bir referans olacağını düşünüyorum.
Saygılarımla....
Yusuf KARAKAŞ