Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  kısaca gelişmiş dizi diyebiliriz. bünyesinde birçok method barındıran bir class'tır. standart dizilere göre artısı dinamik olmasıdır. içine item'leri istediğiniz şekilde ekleyip çıkartabilirsiniz. diziler açısından ikinci bir artısı ise eğer istenirse farklı türdeki tipleri de ekleyebilirsiniz collection içine. .NET Framework'te System.Collections namespace'i içinde çok kullanışlı class'lar bulabilirsiniz.

kullanışlı bir class önerisi: ArrayList
bateristt
18 Aralık 2005 14:13
2.  Ayrıca bkz: ICollection
fizikci
17 Şubat 2006 22:25
3.  .Net'te System.Collections isim alanında bulunurlar

C#'ta belli başlı koleksiyonlar..

ArrayList
HashTable
SortedList
BitArray
Stack
Queue
bilader
19 Şubat 2006 15:54
4.  Simurg dilinde kullanılan bir keyword.
fizikci
25 Mayıs 2006 19:44
5.  Kolleksiyonlarla çalışmak günlük kodlamada en çok yapılan işlerdendir. Genellikle şunlar yapılır:
1. Kolleksiyon içerisinden belli bir elemanı bulmak,
2. Belli şartlara uyan bütün elemanları bulmak,
3. Kolleksiyonun her elemanı üzerinde belli bir işlem yapmak.

Bu girişi yazma niyetim bu işlerin C#'ta (isteyen Java'ya çevirebilir) nasıl daha kolay yapılabileceğini göstermek. Tek tek inceleyelim:

1. Kolleksiyon içinden belli bir elemanı bulmak:
Örneğin Form'unuzun üstündeki kontrollerden Text alanında "Ali" yazanı bulmak istiyorsunuz. Bunun için aşağıdaki kodu yazarsınız:
Control ctrl = null;
for(int i=0; i<form.Controls.Count; i++)
   if(form.Controls[i].Text=="Ali")
   {
      ctrl = form.Controls[i];
      break;
   }
Bu işi şöyle yapabilsek daha kolay olurdu:
ctrl = Util.FindFirst(form.Controls, delegate(object c){return (c as Control).Text=="Ali";} ) as Control;

2. Belli şartlara uyan bütün elemanları bulmak:
Form üzerinde disable edilmemiş bütün kontrolleri bulmak istediğimizi farzedelim. Şunu yazmamız gerekir:
ArrayList controls = new ArrayList();
foreach(Control c in form.Controls)
{
   if(c.Enabled)
      controls.Add(c);
}
Bunu da şöyle yapabilsek ne güzel olcaktı:
IEnumerable controls = Util.FindAll(form.Controls, delegate(object c){return (c as Control).Enabled;});

3. Kolleksiyonun her elemanı üzerinde belli bir işlem yapmak:
Buna da örnek olarak bir form üzerindeki bütün kontrolleri disable eden kodu yazmamız gerektiğini düşünelim.
foreach(Control c in form.Controls)
{
   c.Enabled = false;
}
Bunu da şöyle yapmak fena olmazdı:
Util.Each(form.Controls, delegate(object c){ (c as Control).Enabled = false; } );


Bütün bu kolaylıkları yapabilmek için aşağıdaki Util sınıfını projenize eklemeniz yeterli:
internal class Utility
{
    internal static IEnumerable Find(IEnumerable coll, Delegate func)
    {
        ArrayList al = new ArrayList();
        foreach (object obj in coll)
            if (func(obj))
                al.Add(obj);
        return al;
    }

    internal static object FindFirst(IEnumerable coll, Delegate func)
    {
        ArrayList al = new ArrayList();
        int i = 0;
        foreach (object obj in coll)
        {
            if (func(obj))
                return obj;
            i++;
        }
        return null;
    }

    internal static void Each(IEnumerable coll, Delegate func)
    {
        int i = 0;
        foreach (object obj in coll)
        {
            func(obj);
            i++;
        }
    }
}

Edit:
Bu haliyle çok pratik olmadığını düşünebilirsiniz. Çünkü yazması biraz karışık. C# 3.0'la birlikte çok daha basit hale gelecek. O zaman internet'te bir sürü kolleksiyonlarla çalışmak için buna benzer yazılmış kod örnekleri, makaleler göreceksiniz.
(fizikci - das Future of the Internet acizane.)
fizikci
27 Kasım 2006 14:24
6.  Oracle'da collection'lar 3 kısıma ayrılabilir:
1 - Associative Array
2 - Nested Table
3 - Varray
mennan
03 Aralık 2006 13:22
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1297 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen