private void Button1_Click(System.Object sender, System.EventArgs e)
{
//Öncelikle bir puan tanımlayalım.
int intPuan = 0;
//Daha sonra aynı olan itemleri arrayList'e eklemek için bir tanım yapalım..
ArrayList arrDizi = new ArrayList();
//Eğer "aynı öğeleri bulursa ya da bulmazsa" diye kontrol eden bir true ve false döndürelim.
bool isDetected = false;
//Aynı olan itemleri listbox2'e aktarmak için kullanacağımız bir string oluşturalım.
string detectedItem = null;
//Önceki bulunan itemi tanımlayalım. Bunun nedeni puan kontrolünün stabil çalışması.
string lastDetectedItem = null;
//Herhangi bir sınırdan, listbox1 'de bulunan item sayısı kadar döngüyü tekrar edip taratalım.
for (a = 0; a <= ListBox1.Items.Count - 1; a++) {
//İtemi bulunmadı olarak tanımlayalım. Yani döngü her başladığında.
isDetected = false;
//Tekrar "a" kümesinin elemanı karar for döngüsüne girelim. "Yani a=2 'i tarıyorsa, 1 için döngü vb."
for (b = 0; b <= a - 1; b++) {
//Eğer itemler birbirleriyle eşleşiyorsa işlem yapalım.
if (ListBox1.Items.Item(a) == ListBox1.Items.Item(b)) {
//İki item aynı olduğu için hangisini almak önemli değil. Biz bunu bir string ifadeye alalım.
detectedItem = ListBox1.Items.Item(a);
//Eğer en son bulunan item şimdikine eşit değilse işlem yapıyoruz.
if (lastDetectedItem != detectedItem) {
//Son bulunan ki item eşit değilse zaten ortada tek item vardır. O yüzden puanı 10 yapıyoruz.
intPuan = 10;
//Ve son bulunanı şimdikine eşitliyoruz.
lastDetectedItem = detectedItem;
//Eğer değilse.
} else {
//Itemler farklıdır. O yüzden bulunan iteme +10 puan veriyoruz.
intPuan += 10;
//If yapısını bitiriyoruz.
}
//İtemi bulduğumuz için "true" değeri döndürebiliriz.
isDetected = true;
//Döngüden çıkalım.
break;
//If yapısını bitirelim.
}
//Diğer aşamaya geçelim.
}
//Eğer herhangibir eleman bulunmaz ise yapacaklarımız.
if (!isDetected) {
//Array dizimize ilk for döngüsünde taranan itemi ekliyoruz.
//Döngü her tarandığında bulunmazsa ekliyoruz. Bunun nedeni listbox'ı temizleyeceğimiz içindir.
arrDizi.Add(ListBox1.Items.Item(a));
//If yapımızı bitiriyoruz.
}
//Diğer itemi taramaya başlıyoruz.
}
//Listbox1 'i temizliyoruz.
ListBox1.Items.Clear();
//Array dizimizi ekliyoruz.
ListBox1.Items.AddRange(arrDizi.ToArray);
//Bulunan iki ya da daha fazla farklı itemi kaldırıyoruz listeden.
//Eğer iki ya da daha fazla yoksa karışmıyoruz.
ListBox1.Items.Remove(detectedItem);
//Bulunan itemleri listBox2 'e aktaralım.
//En sona 10 puan eklememizin sebebi ise silinen bir itemi daha dahil etmek.
ListBox2.Items.Add(detectedItem.ToString + (intPuan + 10));
//Ve arrayı boşaltıyoruz.
arrDizi = null;
}
private void Form1_Load(System.Object sender, System.EventArgs e)
{
ListBox1.Items.Add("Aylar");
ListBox1.Items.Add("Aylar");
ListBox1.Items.Add("Aylar");
ListBox1.Items.Add("Aylar");
ListBox1.Items.Add("Gezegen");
ListBox1.Items.Add("Yıldız");
}