C# TA ARRAYLİST SINIFI

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…!!

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi
İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Mehmet Salih Deveci

I am Founder of IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress mehmetsalih.deveci@outlook.com.-                                                                                                                                                                                                                                                 -Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  mehmetsalih.deveci@outlook.com a mail atabilirsiniz.

One thought on “C# TA ARRAYLİST SINIFI

  • December 2, 2011 at 7:29 pm
    Permalink

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

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *