Herkese merhabaa. 😊 Daha önceki yazılarımda metotlara giriş yapmış daha sonrasında da biraz daha detaylı olarak metot yazımını incelemiştik. Şimdi C# içerisinde built-in metot olarak anılan hazır metotları inceleyeceğiz. Bu hazır metotlar sayesinde çok daha kolay ve pratik şekilde istediğimiz işlemleri yapabiliyoruz. Bu yazıda özellikle array metotlarını anlatacağım. Array neredeyse bütün programlama dillerinde bulunan bir yapı olduğu için daha önceden kullandıysanız size çok uzak gelmeyecektir.

Array (Dizi) Metotları

Sort (Sıralama) Metodu:

Sort metodu dizi içerisindeki elemanların sıralanmasını sağlar. Nümerik diziler için küçükten büyüğe doğru bir sıralama yapar. Alfabetik dizilerde harf sırasına göre küçükten büyüğe bir sıralama yapar. Hemen bir örnek yapalım.

static void Main(string[] args)
{
    Random rnd = new Random();
    int[] array = new int[10];
    for (int i = 0; i < 10; i++)
    {
        array[i] = rnd.Next(0, 100);
    }

    Console.Write("Rastgele Nümerik Dizi: ");

    WriteArray(array);

    char[] alphabetic = new char[10];

    for (int i = 0; i < 10; i++)
    {
        alphabetic[i] = (char)rnd.Next(65, 91);
    }

    Console.WriteLine();
    Console.Write("Rastgele Alfabetik Dizi: ");
    WriteArray(alphabetic);
    Console.WriteLine("-----------------------------");
    Console.WriteLine();

    //Sort Metodu
    Array.Sort(array);
    Console.Write("Sıralı Nümerik Dizi: ");
    WriteArray(array);

    Console.WriteLine();

    Array.Sort(alphabetic);
    Console.Write("Sıralı Alfabetik Dizi: ");
    WriteArray(alphabetic);
    Console.ReadKey();
}

Array_Sort

Burada WriteArray metodunu kendim oluşturdum. Her seferinde dizileri yazdırmak için for döngüsü kurmak istemedim. Bu metodu görmek için GitHub repoma bakabilirsiniz.

Reverse (Ters Çevirme) Metodu:

Reverse metodu ile bir diziyi tam tersi biçimde sıralayabiliriz. Burada sıralama işlemi yapılırken büyüklük küçüklüğe bakılmaz. Diziyi olduğu gibi tersine çevirir. Mesela büyükten küçüğe doğru bir sıralama istiyorsak; önce Sort metodunu kullanıp daha sonra Reverse metodu ile tersine çevirebiliriz.

static void Main(string[] args)
{
    Random rnd = new Random();
    int[] array = new int[10];
    for (int i = 0; i < 10; i++)
    {
        array[i] = rnd.Next(0, 100);
    }

    Console.Write("Rastgele Nümerik Dizi: ");

    WriteArray(array);

    char[] alphabetic = new char[10];

    for (int i = 0; i < 10; i++)
    {
        alphabetic[i] = (char)rnd.Next(65, 91);
    }

    Console.WriteLine();
    Console.Write("Rastgele Alfabetik Dizi: ");
    WriteArray(alphabetic);
    Console.WriteLine("-----------------------------");
    Console.WriteLine();

    //Reverse Metodu
    Array.Reverse(array);
    Console.Write("Ters Nümerik Dizi: ");
    WriteArray(array);

    Console.WriteLine();

    Array.Reverse(alphabetic); 
    Console.Write("Ters Alfabetik Dizi: ");
    WriteArray(alphabetic);
    Console.ReadKey();
}

Array_Reverse

IndexOf Metodu:

IndexOf array metodunu kullanarak dizi içerisinde ulaşmak istediğimiz bir elemanın indeks numarasını öğrenebiliriz. Bu metodu kullanarak dizi içerisinde arama yapabilir. Bulunan indeksi diziye verdiğimizde aranan sonucu kullanabiliriz.

static void Main(string[] args)
{
    string[] cities = { "Bursa", "İstanbul", "Ankara", "İzmir" };
    Console.WriteLine("Şehirler: ");
    WriteArray(cities);

    int index = Array.IndexOf(cities, "İstanbul");

    Console.WriteLine("İstanbul'un indeksi: " + index);

    Console.ReadKey();
}

Array_IndexOf

Copy Metodu:

Bir diziyi başka bir diziye kopyalamak istediğimizde Copy metodunu kullanabiliriz. Bu metot parametre olarak
kopyalanan dizi, kopyalanacak dizi ve kaç elemanın kopyalanacağını alır.

static void Main(string[] args)
{
    Random rnd = new Random();
    int[] array = new int[10];
    for (int i = 0; i < 10; i++)
    {
        array[i] = rnd.Next(0, 100);
    }

    Console.Write("Rastgele Nümerik Dizi: ");

    WriteArray(array);

    char[] alphabetic = new char[10];

    for (int i = 0; i < 10; i++)
    {
        alphabetic[i] = (char)rnd.Next(65, 91);
    }

    Console.WriteLine();
    Console.Write("Rastgele Alfabetik Dizi: ");
    WriteArray(alphabetic);
    Console.WriteLine("-----------------------------");
    Console.WriteLine();

    int[] copiedArray = new int[10];
    Array.Copy(array, copiedArray, 10);
    Console.Write("Kopyalanmış Nümerik Dizi: ");
    WriteArray(copiedArray);

    char[] copiedChar = new char[10];
    Array.Copy(alphabetic, copiedChar, 10);
    Console.Write("Kopyalanmış Alfabetik Dizi: ");
    WriteArray(copiedChar);

    Console.ReadKey();
}

Array_Copy

Clear Metodu:

Verilen dizinin içerisindeki elemanların istediğimiz kadarını silmemizi sağlar. Metot 3 argüman alır. Bunlardan biri silme işlemi yapılacak olan dizi, diğeri silme işlemine hangi indeksten başlayacağı ve son olarak da kaç eleman sileceği. Bu metodu kullanarak dizinin 0. indeksini verip dizinin boyutu kadar silmesi gerektiğini söyleyerek baştan sona kadar sildirebiliriz.

static void Main(string[] args)
{
    Random rnd = new Random();
    int[] array = new int[10];
    for (int i = 0; i < 10; i++)
    {
        array[i] = rnd.Next(0, 100);
    }

    Console.Write("Rastgele Nümerik Dizi: ");

    WriteArray(array);

    Array.Clear(array,1,2);
    WriteArray(array);
    Console.ReadKey();
}

Array_Clear

Örnekte de olduğu gibi burada 1. indeksteki elemandan başlayarak 2 eleman sildi ve bunların yerine int’in varsayılan değeri olan 0’ı ekrana yansıttı.

Bu yazıda Array içerisinde bulunan built-in metotları inceledik. Bu metotları kullanarak çok daha kolay bir şekilde işlemlerinizi gerçekleştirebilirsiniz. Metot alıştırmaları yapmak istiyorsanız bu metotları kendiniz yapmayı deneyin. Bir sonraki yazıya kadar kendinize çok iyi bakın.😊