Dictionary etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Dictionary etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

18 Eylül 2018 Salı

Datagridview ve dictioanary kullanarak tabloda tekrarlayan elemanları bir araya toplama


Öğrenci sınav sonuç tablosunda tekrarlaya dataları tek satırda toplam olarak gösterme. Dictionary sınıfından bir örnek oluşturma ve datagridview tablosunu bu nesneden gelen datalar ile doldurma işlemi.

 Dictionary ogrencilerGruplanmis = new Dictionary();

        private void btnGruplandir_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                // sicil 1 nolu kolonda, sicil gruplanmışta var mı kontrol et. Varsa bu satırdaki değerleri olan gruba ekle
                if (ogrencilerGruplanmis.ContainsKey(dataGridView1[1, i].Value.ToString()))
                {
                    Ogrenciler ogrenci = ogrencilerGruplanmis[dataGridView1[1, i].Value.ToString()];

                    ogrenci.DenemeSayisi += int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi += int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru += int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali += int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis += int.Parse(dataGridView1[8, i].Value.ToString());
                }
                else
                {
                    Ogrenciler ogrenci = new Ogrenciler();

                    ogrenci.SicilNo = int.Parse(dataGridView1[1, i].Value.ToString());
                    ogrenci.Ad = dataGridView1[2, i].Value.ToString();
                    ogrenci.Soyad = dataGridView1[3, i].Value.ToString();
                    ogrenci.DenemeSayisi = int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi = int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru = int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali = int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis = int.Parse(dataGridView1[8, i].Value.ToString());

                    ogrencilerGruplanmis.Add(ogrenci.SicilNo.ToString(), ogrenci);
                }
            }

            int satir = 0;
            dataGridView2.Rows.Clear();
            foreach (KeyValuePair item in ogrencilerGruplanmis)
            {
                dataGridView2.Rows.Add();

                Ogrenciler ogrenci = item.Value;
                dataGridView2[0, satir].Value = satir + 1;
                dataGridView2[1, satir].Value = ogrenci.SicilNo;
                dataGridView2[2, satir].Value = ogrenci.Ad;
                dataGridView2[2, satir].Value = ogrenci.Soyad;
                dataGridView2[2, satir].Value = ogrenci.DenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.YapilanDenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.Dogru;
                dataGridView2[2, satir].Value = ogrenci.Hatali;
                dataGridView2[2, satir].Value = ogrenci.Yanlis;
                satir++;
            }
        }


Ogrenciler sınıfı :

    public class Ogrenciler
    {
        public int SicilNo { get; set; }
        public string Ad { get; set; }
        public string Soyad { get; set; }
        public int DenemeSayisi { get; set; }
        public int YapilanDenemeSayisi { get; set; }
        public int Dogru { get; set; }
        public int Hatali { get; set; }
        public int Yanlis { get; set; }
    }


16 Haziran 2013 Pazar

C Sharp Uygulamalar Generic Tip Kullanımı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) jeneric tip kullanımı örnekleri, C sharpta kullanılan listeler ve bu Listelere eleman ekleme. ArrayList Kullanımı, Generic List Kullanımı, Dictionary Kullanımı, SortedDictionary Kullanımı, SortedList Kullanımı, Stack - Queue Kullanımı, generic class kullanımı.
ETİKETLER: csharp arraylist - csharp arraylist add - c sharp generic list - c sharp generic list add - csharp generic class - csharp generic collections - csharp stack - csharp queue - csharp stack queue - csharp string queue - csharp sortedlist - csharp sorted collection - csharp sorteddictionary - csharp sorteddictionary example - csharp dictionary - csharp dictionary add





UYGULAMAYI İNDİR




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace C_Sharp_Generic_Tip_Kullanımı
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //ArrayList object aldığı için her türlü veri girişi yapılabilir.
           
            ArrayList arraylist = new ArrayList();

            //integer bir sayı eklenebilir
            
            arraylist.Add(234231);

            //string bir değer eklenebilir

            arraylist.Add("123456");
            
            //Herhangi bir kontrol eklenebilir.

            arraylist.Add(new TextBox());


            //Generic List collection ını sadece belirtilen tipte değerler alabilir. 
            //Böylece bu collection içinde sadece bu tipin olduğunu bildiğimizden bu liste sadece
            //bu tipte veri ataması yaparız. 

            List< int > list = new List< int >();
            
            list.Add(123);
            list.Add(456);
            list.Add(789);

            foreach (int item in list)
            {
                listBox1.Items.Add(item);
            }


            //şimdi de generic Para sınıfını nasıl kullanabileceğimize bakalım
            //Burada Para nın tipi int olsun. Bu durumda Lira ve Kurus değerlerini int tipinden girmemiz
            //gerekecek. Aşağıda para isminde bir örneğini oluşturacağım.

            Para< int > paraInt = new Para< int >();
            
            paraInt.Lira = 40;
            paraInt.Kurus = 13;

            //Bu sefer Para generic sınıfının tipin string yapacağım. Bu durumda Lira ve Kurus değerlerinin
            //tipi de otomatik olarak string olacak. Aşağıdaki örnekteki gibi değerleri çift tırnak olarak
            //yani string olarak girmemiz gerekiyor.

            Para< string > paraString = new Para< string >()
            {
                Lira = "Kirk",
                Kurus = "On Üç"
            };

            //bu örneğimde de Para sınıfının tipini double olarak atadım.

            Para< double > paraDouble = new Para < double >(3, 12);

            //oluşturduğumuz para nesnelerini listboxda görelim. Bu işlem bu sınıfın ToString metodundaki
            // değeri listbox kutusuna yazdıracak
       
            listBox1.Items.Add(paraInt);
            
            listBox1.Items.Add(paraString);
            
            listBox1.Items.Add(paraDouble);


            //Diğer Collection sınıflarına da aşağıdaki gibi eleman ekleyebiliriz.

            //Queue tipini ne yaparsak o tipte eleman ekleme yapabiliriz. Burada string ve int tipinde iki
            //örnek ile eleman eklemenin nasıl yapılacağını gösterdim.

            //Queue collection ını FIFO yapısına sahiptir (First in First out), yani bu collection a
            //ilk eklenen ilk çıkar yapısındadır. Dequeue metodu kullanılarak da queue boşaltılır.
            //boşaltma işleminde FIFO kuralı uygulanır

            Queue < int > queueInt = new Queue< int >();

            queueInt.Enqueue(1);
            queueInt.Enqueue(4);

            Queue< string > queueString = new Queue< string >();

            queueString.Enqueue("1");
            queueString.Enqueue("4");


            //Diğer bir collection da Stack tir. Generic yapısından dolayı yine tip seçilebilir.
            //Bunun Queue dan farkı LIFO yapısına sahiptir (Last in Firs Out), yani bu collectiona son eklenen
            //eleman ilk çıkar. Push metodu eleman eklemek için kullanılır. Pop metoduda eleman çıkartmak için
            //kullanılır.

            Stack< string > s = new Stack< string >();
            s.Push("A");
            s.Push("B");

            //Dictionary  sınıfı içerisinde belirleyeceğiniz bir anahtara uygun bir değeri saklayabilecek
            //listeleri oluşturmak için kullanılır. Burada anahtar türünün belirtilmesi gerekmektedir. 

            Dictionary< int, string > dictionary = new Dictionary< int, string >();

            dictionary.Add(1, "Enes");
            dictionary.Add(2, "Gökçe");
            dictionary.Add(3, "Sami");

            //Veriler  anahtar-değer  yapısında saklanır. Bu listeye eklenen  veriler alfabetik  olarak 
            //sıralı bir şekilde tutulur. Veri türlerinin hepsini kullanabilir. Key(Anahtar) değiştirilemez 
            //ve boş değer girilemez. Value (Değer) değiştirilebilir ve boş değer olarak girilebilir.

            SortedList< string, string > sortedlist = new SortedList< string, string >();

            sortedlist.Add("Araba", "Car");
            sortedlist.Add("Masa", "Table");



            SortedDictionary< int, string > sorteddictionary = new SortedDictionary< int, string >();

            sorteddictionary.Add(1, "Enes");
            sorteddictionary.Add(2, "Gökçe");
            sorteddictionary.Add(3, "Sami");
        }



    }


    //Örnek olarak Para diye bir generic class yapalım ve bunu kullanalım.

    public class Para< Tip >
    {
        public Tip Lira;
        public Tip Kurus { get; set; }

        public Para()
        {

        }
        public Para(Tip tipLira, Tip tipKurus)
        {
            this.Lira = tipLira;
            this.Kurus = tipKurus;
        }

        public Tip Yazdir(Tip tip)
        {
            return tip;
        }


        public override string ToString()
        {
            return Lira + " TL " + Kurus + " Kurus";
        }
    }
}
  

UYGULAMAYI İNDİR