Porównywanie dwóch stringów.

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");
            }
        }
1

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

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

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