c# Desktop

Rastgele Seçilen 20 Sayıyı ListBox Nesnesine Ekleyip Sıralayan c# Form Uygulaması

Sıralama işlemleri kodlamanın bel kemiğini oluşturur. Form sayfalarında kullanılan bazı nesnelerin içindeki değeleri sıralamak için Sort() metodundan yararlanılır. Ancak bu metod değerleri alfasayısal olarak sıralar. Nesnenin içindeki değerler sayı olduğunda bu metod işe yaramaz. Bu uygulamamızda rastgele 20 sayıyı ListBox nesnesine aktarıp sıralama işlemlerini gerçekleştireceğiz.

Form sayfasına bir adet ListBox ekleyelim. Formun Load olayına aşağıdaki kodları yazalım.

        private void Form3_Load(object sender, EventArgs e)
        {
            Random rnd = new Random();
            int sayi;
            for (int i = 0; i < 20; i++)
            {
                sayi = rnd.Next(1, 1000);
                listBox1.Items.Add(sayi.ToString());
            }
        }

Yukarıdaki kodları çalıştırdığınızda sayıların ListBox nesnesine eklendiğini görürsünüz. Bu nesneye ait Sorted() metodunu aşağıdaki gibi kullanalım.

            listBox1.Sorted = true;

Ancak sayıların sıralanmadığını, daha doğrusu hatalı bir şekilde sıralandığını görürsünüz. Şimdi bu sıralama işlemlerini doğru bir şekilde gerçekleştirelim.

Standart dizi tanımlayarak sıralama işlemini gerçekleştirelim.

        Random rnd = new Random();
        int sayi;
        int[] sayilar = new int[20];
 
        private void Form3_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 20; i++)
            {
                sayi = rnd.Next(1, 1000);
                sayilar[i] = sayi;
            }
 
            int ara;
 
            for (int i = 0; i < 19; i++)
            {
                for (int j = i + 1; j < 20; j++)
                {
                    if (sayilar[i] > sayilar[j])
                    {
                        ara = sayilar[i];
                        sayilar[i] = sayilar[j];
                        sayilar[j] = ara;
                    }
                }
            }
 
            for (int i = 0; i < 20; i++)
            {
                listBox1.Items.Add(sayilar[i].ToString());
            }
        }

ArrayList koleksiyonundan yararlanarak sıralama işlemini gerçekleştirelim. 

            ArrayList q = new ArrayList();
            foreach (object o in listBox1.Items)
                q.Add(o);
            q.Sort();
            listBox1.Items.Clear();
            foreach (object o in q)
            {
                listBox1.Items.Add(o);
            }

List koleksiyonundan yararlanarak sıralama işlemini gerçekleştirelim.

        Random rnd = new Random();
        int sayi;
        List<int> list = new List<int>();
 
        private void Form3_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 20; i++)
            {
                sayi = rnd.Next(1, 1000);
                list.Add(sayi);
            }
 
            list.Sort();
 
            listBox1.DataSource = list;
        }

Burada Sort işlemi yerine linq kodlarını kullanarak sıralama işlemini gerçekleştirebilirsiniz.

            var sirala = from num in list

                         orderby num
                         select num;
 
            foreach (var item in sirala)
            {
                listBox1.Items.Add(item.ToString());
            }

Kodları aşağıdaki gibi de düzenleyebilirsiniz.

            List<int> sirala = list.OrderBy(o =>Convert.ToInt32(o.ToString())).ToList();
 
            foreach (var item in sirala)
            {
 
                listBox1.Items.Add(item.ToString());
            }

Ya da linq kod yapısını kullanarak ListBox içindeki sayısal değerleri sıralama işlemini gerçekleştirebiliriz.

            var list2 = listBox1.Items
                    .Cast<string>()
                    .OrderBy(x => Convert.ToInt32(x))
                    .ToArray();
            listBox1.Items.Clear();
            listBox1.Items.AddRange(list2);

İlgili Makaleler
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
Yıkıcı Metotlar (Destructors)
Sayısal Loto Çekilişini Yapan c# Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Yazdırma İletişim Kutusu (PrintDialog)
C# Uygulamalarında HashMap Dizi Oluşturma
C# Uygulamalarında Dictionary Dizi Oluşturma
c# Form Uygulamalarında Ekranın Genişliğini ve Yüksekliğini Bulma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Konsol Ekranında Kod Yazma ve Çalıştırma
LINQ - Gruplama (Grouping) Örnekleri
Veri Girişi Maskeleme (MaskedTextBox)
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
Veri Girişi Doğrulama (Input Validation)
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
C# Programlama Dilinde Veri Tipleri
Form Sayfalarında Ayrıntılı ListBox Kullanımı
Form Üzerine Satranç Tahtası Yapan c# Uygulaması
Belirtilen Sayı Kadar Yıldız Oluşturan c# Form Uygulaması

Yorum Ekle
   
Kötü İyi