Porównywanie dwóch stringów.

Odpowiedz Nowy wątek
2011-07-30 14:32
0

Mam problem z porównaniem dwóch stringów. Wczytuję słowa z pliku do listy typu string. Teraz użytkownik wpisuję słowo do textBoxa bo kliknięciu buttona, program ma sprawdzić czy tego słowa tam już nie ma, mimo tego że wpisze dokładnie takie słowo jak jest na liście program wykonuje się dalej, zamiast wyświetlić komunikat, że taka nazwa jest już użyta.

 
bool dalszeDzialanie;
private List<string> listaBazDB = new List<string>();
private void buttonDodajNazweDzialu_Click(object sender, EventArgs e)
        {
            if (tBNazwaDzialuUzytkownikaDodajDzial.Text != "")
            {
                for (int i = 0; i < listaBazDB.Count; i++)
                {
                    if (tBNazwaDzialuUzytkownikaDodajDzial.Text!=listaBazDB[i])//przekazujemy ściężkę do pliku z odpowiednim działem))
                    {
                        tBNazwaDzialuUzytkownikaDodajDzial.Enabled = false;
                        dalszeDzialanie = true;
                        nazwaBazyGotowa = tBNazwaDzialuUzytkownikaDodajDzial.Text;
                    }
                    else
                    {
                        dalszeDzialanie = false;
                        tBNazwaDzialuUzytkownikaDodajDzial.Enabled = true;
                    }
                }
                if (dalszeDzialanie == true)
                {
                    dodajDzialDB(tBNazwaDzialuUzytkownikaDodajDzial, labelInformacjaDodajDzial);
                    wlaczPolaSlowaDB();
                    buttonDodajSlowaDodajDzial.Enabled = true;
                }
                else if(dalszeDzialanie==false)
                {
                    MessageBox.Show("Nazwa już jest zajęta. Proszę użyć innej nazwy.", "Komunikat");
                    labelInformacjaDodajDzial.Text = "Nazwa zajęta.";
                    wylaczPolaSlowaDB();
                    buttonDodajSlowaDodajDzial.Enabled = false;
                }
            }
            else
            {
                MessageBox.Show("Proszę podać nazwę działu.", "Komunikat");
            }
        }

Pozostało 580 znaków

2011-07-30 14:51
O_o

Hmmm, brzydki ten kod aż się czytać nie chce :D
Wygląda na to że sporo kodu można wywalić używając Dictionary:

Dictionary<string,jakastambaza> listabaz;

obsługa by wyglądała na wzór

if (listabaz.ContainsKey(textBox.text)==false)
{
  // dodawanie nowej bazy
}
else
{
  // baza o takiej nazwie już istnieje
}

Więcej na: http://msdn.microsoft.com/en-us/library/xfhwa508.aspx


O̾..͠o

Pozostało 580 znaków

2011-07-30 17:15
0

A wystarczyłoby użyć metody Contains, żeby sprawdzić czy element jest już na liście, zamiast jakiejś pętli i porównań elementów...


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Masz rację. Poprawiłem i od razu mniej kodu;) - Questionaire 2011-07-30 18:36

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0