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
Basit Veri Bağlama (Simple Data Binding)
Veri Girişi Doğrulama (Input Validation)
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
c# Programında Bigpara Sayfasından Borsa Verilerini Selenium Kütüphanesini Kullanarak Çekme
Kompleks Veri Bağlama (Complex Data Binding)
Veri Girişi Maskeleme (MaskedTextBox)
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Yıkıcı Metotlar (Destructors)
Tombala Oyununu Yapan Uygulamayı c# Dilinde Kodlama1
Konsol Ekranında Kod Yazma ve Çalıştırma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Form Sınıfına Ait Bazı Olayların ve Özelliklerin Kullanılmasına Ait Örnek Uygulama
Form Sınıfı
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
Metodu Sonlandırma
Verilen İki Matrisi Çarpan Programı c# Dilinde Form Ortamında Yapınız
Yazdırma İletişim Kutusu (PrintDialog)
Tetris Oyununu C# Dilini Kullanarak Form Sayfasında Kodlama1

Yorum Ekle
   
Kötü
İyi