Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
1044
Tıklama
0
Öne Çıkarma
C# Windows Form'da iki string array'i nasil eslestirebilirim?
C
12 yıl (1579 mesaj)
Onbaşı
Konu Sahibi

Merhaba arkadaslar C# Windows Form'da iki string array'i nasil eslestirebilirim?

Ornegin:

string[] isimler = { "ahmet", "mehmet", "veli", "burak", "alper" };
string[] telNolar = { "2720774", "5678554", "457682", "426813", "725913"};

Yani textbox'a bu isimlerden birini yazinca label'de o isme ait tel no'yu nasil gosterebilirim? Simdiden tesekkurler.



C
12 yıl (4326 mesaj)
Yarbay

Dictionary<int, string> kullan daha rahat olur.


Bu mesaja 1 cevap geldi.
C
12 yıl (1579 mesaj)
Onbaşı
Konu Sahibi

Odev bu sekilde array olarak yapilmak zorunda. Eger nasil yapilacagini biliyorsaniz, gostermeniz cok makbule gecer. Acil gondermem lazim. Tesekkurler.


Bu mesaja 1 cevap geldi.
L
12 yıl (388 mesaj)
Yüzbaşı

quote:

Orijinalden alıntı: C_Sharper

Odev bu sekilde array olarak yapilmak zorunda. Eger nasil yapilacagini biliyorsaniz, gostermeniz cok makbule gecer. Acil gondermem lazim. Tesekkurler.

isimler[0] =>> telNo[0]
isimler[1] =>> telNo[1]
.....

Yani 2'sinide aynı indis numarasını vererek haledebilrsin



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
Ç
12 yıl (50 mesaj)
Çavuş

Dizileri global olarak tanımladıktan sonra butonun click eventine şu kodları yazman işini görür.

string a = txtIsim.Text;
for (int i = 0; i < isimler.Length; i++)
{
if (isimler ==a)
{
sayi = i;
}
}
txtNo.Text = telNolar[sayi].ToString();

Yalnız ben label'de değil, ikisini de textbox'ta gösterdim. Sen kodu ona göre ayarla zaten bir satır değişecek.

İlave: sayi değişkenini de global tanımladım.

İlave2: if içinde isimler ifadesinin yanında köşeli parantez içinde i olacak. Yazıyorum burada görünüyor, onaylayınca çıkmıyor. Onu da yazarsın.





< Bu mesaj bu kişi tarafından değiştirildi çemçük -- 10 Şubat 2015; 0:57:30 >
Bu mesaja 1 cevap geldi.
C
12 yıl (1579 mesaj)
Onbaşı
Konu Sahibi

Sagol çemçük,

Hepiniz sagolun varolun, biraz evvel kodu kendi basima yazmayi basarmistim. Biraz kasti ama baska turlu de ogrenemem zaten.



string[] isimler= { "ahmet", "mehmet", "veli", "burak", "alper" };

string[] telNolar = { "2720774", "5678554", "457682", "426813", "725913"};

string input= txtBxisim.Text;
for (int i = 1; i < isimler.Length; i++)
{
string indexDeger = isimler;
if (input== indexDeger)
{
lblTfNum.Text = telNolar;
}


}

MessageBox.Show("Aradiginiz numara yanlistir!", "Yanlis Numara");





< Bu mesaj bu kişi tarafından değiştirildi Clouder -- 10 Şubat 2015; 1:11:57 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @çemçük
C
12 yıl (1579 mesaj)
Onbaşı
Konu Sahibi

Merhaba Arkadaslar, kodu gordugunuz uzere yazdim ama nedense else, if'ten once geliyor. Nerede hata yaptigimi bulamiyorum. Simdiden tesekkurler.


string[] isimler= { "ahmet", "mehmet", "veli", "burak", "alper" };

string[] telNolar = { "2720774", "5678554", "457682", "426813", "725913"};

string input= txtBxisim.Text;
for (int i = 0; i < isimler.Length; i++)
{
string indexDeger = isimler;
if (input== indexDeger)
{
lblTfNum.Text = telNolar.ToString();
}

else
{
MessageBox.Show("Aradiginiz numara yanlistir!", "Yanlis Numara");
}

}





< Bu mesaj bu kişi tarafından değiştirildi Clouder -- 10 Şubat 2015; 16:22:56 >
Bu mesaja 1 cevap geldi.
Ç
12 yıl (50 mesaj)
Çavuş

For döngüsünün içine messagebox koyduğun zaman, döngü bitene kadar sürekli messagebox gösterir sana. Onun yerine şöyle bir düzenleme yapabilirsin:

string[] isimler = { "ahmet", "mehmet", "veli", "burak", "alper" };

string[] telNolar = { "2720774", "5678554", "457682", "426813", "725913" };

bool bulundumu = false;

string input = txtBxisim.Text;
for (int i = 0; i < isimler.Length; i++)
{
string indexDeger = isimler;
if (input == indexDeger)
{
lblTfNum.Text = telNolar.ToString();
bulundumu = true;
}
}
if (!bulundumu)
{
MessageBox.Show("Aradiginiz numara yanlistir!", "Yanlis Numara");
}

Yaptığım ekleme sadece boolean tipinde bir değişken tanımlamak. Başta false değeri veriyorum ve eğer telefon numarası bulunursa bu değişkenin değerini true yapıyorum. İf bloğundaki şart, dizi içerisindeki hiçbir elemanda sağlanmamışsa, değişkenin ilk başta koyduğum false değeri değişmiyor ve döngü bittiğinde ilk değerini korumuş oluyor.

Son satırda da eğer bulundumu değeri false ise, yani hiç değişmemişse hata mesajını gösteriyorum.

Not: telNolar ile isimlerin yanındaki köşeli parantez içinde i'ler görünmeyecek gene muhtemelen. Sen onları düzenlersin.


Bu mesaja 1 cevap geldi.
C
12 yıl (1579 mesaj)
Onbaşı
Konu Sahibi

Hocam cok sagolasin. Seni de hep yoruyorum ama keske problemi cozdugumu yazsaymisim. Kusura bakma. Dedigin gibi dongu yuzunden messagebox'i disari almistim ama bu sefer de donguden sonra durmadan messagebox'i gosteriyordu. Olayi return ile cozdum. Saygilar.


string[] isimler = new string[] { "ahmet", "mehmet", "veli", "burak", "alper" };

string[] telNolar = new string[] { "2720774", "5678554", "457682", "426813", "725913" };

string input = txtBxIsim.Text;
for (int i = 0; i < isimler.Length; i++)
{
string indexDeger = isimler;
if (input == indexDeger)
{
lblTfNum.Text = telNolar.ToString();
return;
}
}
MessageBox.Show("Aradiginiz numara yanlistir!", "Yanlis Numara");





< Bu mesaj bu kişi tarafından değiştirildi Clouder -- 10 Şubat 2015; 20:04:50 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.