Ho un array di stringhe che vengono inserite dall'utente. Se la stringa è già stata inserita, stampa un messaggio e chiede di inserirne un'altra.
Il seguente codice mi funziona:
string[] elenco = new string[5];
for (int i = 0; i < elenco.Length; i++)
{
Console.WriteLine("\nInserisci il " + (i + 1) + "° nominativo.");
elenco[i] = Console.ReadLine();
Console.WriteLine("\nIl " + (i+1) + "° nominativo è " + elenco[i]);
if (i > 0)
{
int j = i - 1;
while (elenco[i].CompareTo(elenco[j]) != 0 && j > 0)
{
j--;
if (elenco[i].CompareTo(elenco[j]) == 0)
{
Console.WriteLine("\nNominativo già inserito.");
i = i - 1;
}
}
}
}
Console.ReadLine();
Se all'interno del ciclo while, scrivo:
while (elenco[i].CompareTo(elenco[j]) != 0 && j > 0)
{
j--;
if (elenco[i].CompareTo(elenco[j]) == 0)
{
Console.WriteLine("\nNominativo già inserito.");
i = i - 1;
}
else
Console.WriteLine("\nIl nominativo è " + elenco[i]);
}
non viene eseguito correttamente.
Qualcuno potrebbe indicarmi quale errore commetto?
grazie.