Porównywanie dwóch stringów.

Porównywanie dwóch stringów.
QU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
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.

Kopiuj
 
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");
            }
        }
OO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
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:

Kopiuj
Dictionary<string,jakastambaza> listabaz;

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

Kopiuj
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

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.