Merhaba Değerli Arkadaşlar .Net deki Collections kütüphanesinde var olan çok kullanımlı olan Classları anlatmaya devam ediyoruz.C ve C++ gibi dillerde çokça kod yazan arkadaşlar bu anlatacağımı iyi bilirler o 2 dilde her zaman için dinamik boyutlu dizilere ihtiyaç duyulmaktadır ve bunun yönetimide bazen zorlaşmaktadır çünkü Pointer kavramıyla uğraşmak zorundasınızdır ancak Java ve C# gibi yüksek seviyeli dillerde bu sorunlar kullanıcı boyutundan kaldırılmıştır yani kullanı isterse .Net kütüphanesinden Arraylist Sınıfını kullanabilir bunun için yapılması gereken Tek şey  using System.Collections; sistem kütüphanesini kodun tepesine yazmasıdır.

Yukarıda da belirttiğimiz üzere Arraylist sınıfının en önemli özelliği Dinamik boyutta bir Object dizisi olmasıdır.Object Derken diyeceksiniz???
Object derken şunu kastediyorum ki C ve C++ da tanımladığınız bir dizininin Type ı ya Char ya integer ya string yada Double Vb.. gibi tiplerden birisi olmalı ve saklanılacak value değerleride hep bu type ta olmalı ancak C# da ve Java gibi yüksek seviyeli dillerde bulunan Arraylist Class ının öyle bir sorunu yok yani bir Arraylist eki bir dizide hem double hem char hem integer hemde string type ında eleman barıdırılabilir.Ayrıca Arraylist Sınıfının birde dinamik boyutlu bir dizi olduğunu düşünürsek C ve C++ gibi dillerdeki dizilerden kat kat üstünlükte olduğunu anlayabiliriz belki burada C ve C++ gibi dillerde yazılım yapan arkadaşlar diyebilirler ki C ve C++ da da bu sorunu Bağlı liste (Linked List) ile halledebiliyoruz derler bende doğru söylüyorsunuz derim ama bir an her zaman bellek konusunda problemlerle karşılaşıldığını ve sürekli pointer yönetimsizliği ortaya çıkınca böyle bir şeye gerek duyulmayacağını ve Arraylist class ını kullanacağınızı belirtmek isterim.

Arraylist Class ının Dinamik Size özelliği ve Object type ında value lar barındırdığını söylemiştik bununla beraber Arraylist Class ının .Net Framework le birlikte gelen bir çok Metodu bulunmaktadır.Bunlardan En çok kullanılan metotlardan bazılarıysa şunlardır.

  • Add
  • AddRange
  • Remove
  • RemoveAt
  • Count
  • CopyTo
  • Contains
  • Clear
  • Clone
  • Reverse
  • Sort

Bu özelliklerden Add metodu Arraylist te tanımladığımız bir liste nesnesi düşünelim bu liste ye Object type ında eleman Ekler 0. indexten başlayarak.Remove Özelliğine girilen integer type ındaki değişkene denk düşen indexteki value silinir.RemoveAt metodundaysa Direk liste içinde bilinen bir value varsa o değeri bu metoda yazarsak hangi indexteyse gider ve onu siler.Clear metoduyla Listenin içindeki value değerlerin tamamı silinir. Clone metoduylada farklı bir Arraylist nesnesine kopyalama işlemleri yapılır.Bu metotların hepsini tanımlamak yerine sizlere balık tutmayı öğretmek amacıyla .Net Framework un Tüm sınıflarına ve onların metotlarına erişmenin ve onların ne anlamlara geldiğini tanımlarıyla beraber aldıkları parametreleri göstereceğim.Şimdi herhangi bir sınıf adının üstüne gelip sağ tıklayalım aşağıdaki ekranın çıkması gerekiyor:

Yukarıda İşaretli Go To Definition kısmına tıkladığımız zaman karşımıza gelecek ekranda Arraylist e ait özellikler bulunacaktır ve burada Arraylist sınıfına ait olan tüm metotlar ve aldıkları parametreler gösteriliyo olacaktır.Ayrıca Ordan herbir parametrenin ne işe yaradığınıda görebilirsiniz.

Bu kadar Ayrıntıdan sonra şimdi dönelim bu konuda yaptığım uygulamaya…İşte kodları

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(“\t\tMEHMET SALIH DEVECI\n”);
            ArrayList list = new ArrayList();

            string yer = “Yazilim Alemi”;
            list.Add(yer);

            for (int i = 0; i < 5; i++)
                list.Add(i);

                Console.WriteLine(“\tArrayListin elemanları:”);
            foreach (object eleman in list)
                Console.WriteLine(eleman);

            for (int i = 0; i < 3; i++)
            {
                list.Remove(i);
            }
            list.Add(“KTU BILGISAYAR MUHENDISLIGI”);
            Console.WriteLine(“\n\tArrayListin Değişmiş Hali”);

            foreach (object eleman in list)
                Console.WriteLine(eleman);

            Console.WriteLine(“\nSuanda Arraylist e {0} eleman Vardir\n”,list.Count);
            list.RemoveAt(2);

            foreach (object eleman in list)
                Console.WriteLine(eleman);

            Console.ReadLine();
        }
    }
}
Şimdide kodun çıktısını görelim:

Kodun çıktısını verdikten sonra bu yazımızın sonuna gelmiş bulunmaktayız hepinize bol şanslar dilerim Esen kalmanız dileğiyle…!!

MEHMET SALİH DEVECİ

BİLGİSAYAR MÜHENDİSİ

Reklamlar
yorum
  1. salih yakıcı dedi ki:

    c# ta iki boyutlu array list tanımlayabilir miyiz eğer tanımlayabilirsek nasıl olur ?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s