Şimdi Ara

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

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
761
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.



  • Dictionary<int, string> kullan daha rahat olur.
  • Odev bu sekilde array olarak yapilmak zorunda. Eger nasil yapilacagini biliyorsaniz, gostermeniz cok makbule gecer. Acil gondermem lazim. Tesekkurler.
  • 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ı >
  • 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 >
  • çemçük kullanıcısına yanıt
    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 >
  • 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 >
  • 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.




  • 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 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.