ArrayList nesnesinin eleman sayısı gerektiği zaman dinamik olarak artmakta veya iki katına çıkmaktadır. Eleman sayısı sabit ArrayList nesnesi hazırlamak istiyorsanız ArrayList sınıfının FixedSize() metodundan yararlanabilirsiniz. Bu metot sayesinde sabit elemanlı ArrayList nesnesi hazırlayabilmek için öncelikle kapasitesini belirlediğiniz normal bir ArrayList nesnesi hazırlayıp bunu FixedSize() metoduna parametre olarak vermelisiniz. Bu metodun nasıl kullanıldığını aşağıda görebilirsiniz.
privatevoidForm1_Click(objectsender, EventArgse)
{
ArrayListiller = new ArrayList(4);
iller.Add("adana");
iller.Add("Ankara");
iller.Add("istanbul");
iller.Add("İzmir");
ArrayListil_dizi = ArrayList.FixedSize(iller);
}
Bu kodda önce bildik şekilde “iller” adını verdiğim ve başlangıçta kapasitesi 4 olan bir ArrayList nesnesi hazırlayıp 4 ilin adını elaman olarak aktardım. Devamında bu 4 elemana sahip ArrayList nesnesinden yola çıkıp FixesSize() metodu ile sabit elemanlı bir ArrayList nesnesi hazırladım.
Bu şartlarda her iki ArrayList nesnesi de aynı elemanlara sahiptir. Şimdi bu koda ekleme yapıp eleman sayısı sabit olan ArrayList nesnesinin elemanlarını değiştirip içeriklerini bir ListBox’a aktaracağım.
private void Form1_Click(object sender, EventArgs e)
{
ArrayList iller = new ArrayList(4);
iller.Add("Adana");
iller.Add("Ankara");
iller.Add("istanbul");
iller.Add("İzmir");
ArrayList il_dizi = ArrayList.FixedSize(iller);
il_dizi[0] = "Bursa";
il_dizi[1] = "Denizli";
il_dizi[2] = "Konya";
il_dizi[3] = "Trabzon";
foreach (object il in il_dizi)
listBox1.Items.Add(il);
}
İlgilendiğiniz ArrayList nesnesinin eleman sayısının sabitlenip sabitlenmediğini öğrenmek istiyorsanız IsFixedSize() metodundan yararlanabilirsiniz. İlgili ArrayList’in eleman sayısı sabitlenmiş ise bu metot geriye True göndermektedir. Bu metot aşağıdaki gibi kullanılabilir.
private void ekle_Click(object sender, EventArgs e)
{
bool sonuc = il_dizi.IsFixedSize;
if (sonuc)
MessageBox.Show("Bu arrayList'e eleman eklenemez");
else
il_dizi.Add("Mersin");
}
ArrayList sınıfı FixedSize() metodundan başka ReadOnly() adında bir metoda sahiptir. Bu metottan yararlanarak mevcut bir ArrayList nesnesinden yola çıkıp içeriği değiştirilemeyen yeni bir ArrayList nesnesi hazırlamak mümkündür. Bu metodun nasıl kullanıldığını aşağıda görebilirsiniz.
private void Form1_Click(object sender, EventArgs e)
{
ArrayList iller = new ArrayList(4);
ArrayList il_dizi;
iller.Add("Adana");
iller.Add("Ankara");
iller.Add("istanbul");
iller.Add("İzmir");
il_dizi = ArrayList.ReadOnly(iller);
}
Bu kodu incelerseniz kullanım tekniği bakımından ReadOnly() metodunun FixedSize() metoduna çok benzediğini görürsünüz. Bu andan itibaren il_dizi adını verdiğim ArrayList nesnesinin elemanlarının içerikleri değiştirilemez, yeni eleman eklenmez. İlgilendiğiniz ArrayList nesnesinin ReadOnly olup olmadığını öğrenmek istiyorsanız IsReadOnly() özelliğine bakabilirsiniz.
bool durum = il_dizi.IsReadOnly;
if (durum)
MessageBox.Show("bu arraylist readonly");
else
il_dizi.Add("Mersin");
0 yorum yazilmistir