2016-11-06 16 views
1

Leute in meinem Programm Ich versuche, nach Duplikaten in meiner Listbox zu suchen, indem ich überprüfe, was in der Textbox angefordert wird, obwohl ich nicht scheinen kann, dass es funktioniert, Duplikate werden nur dem Array/Listbox hinzugefügt Vorschläge?C# Überprüfung auf Duplikate

private void btnAdd_Click(object sender, EventArgs e) 
{ 
    string text = txtInitialise.Text; 
    bool isDuplicate = false; 

    foreach (var name in lstHoldValue.Items) 
    { 
     if (name.ToString().Equals(text)) 
     { 
      isDuplicate = true; 
      break; 
     } 
    } 
    if (isDuplicate) 
    { 
     MessageBox.Show("This number already exists!"); 
    } 

Antwort

2

Sie Elemente hinzufügen Sammlung auf Ihren Artikel ist auf diese Weise:

lstHoldValue.Items.Insert(0, "\t" + numArray[i]); 

Beachten Sie die \t am Anfang der Zeichenfolge eingefügt?.
Nun, sollten Sie dies \t berücksichtigen, wenn Sie für Zeichenfolge Gleichheit überprüfen

string text = "\t" + txtInitialise.Text; 

(Oder entfernen Sie einfach das \t beim Einfügen)

+1

Sie hatten Recht, danke für den Kommentar. – mybirthname

+0

Danke Steve, schätze die Hilfe! – nothing

0

Nur um die @mybirthname anwser hinzufügen möchten, können Sie auch Linq statt foreach wie folgt verwenden: var isDublicate = !lstHoldValue.Items.All(x=>x.ToString() != test)

+0

Wahrscheinlich meinen Sie Alle nicht alles. Wie jedoch erklärt, ist das Problem nicht die ToString() für die ObjectCollection-Elemente, aber der Unterschied in den Strings verglichen – Steve

+0

@Steve Ich habe eine Zeichenfolge, die sich von einer Reihe anderer Zeichenfolgen unterscheiden sollte, so dass alle Zeichenfolgen von meiner Zeichenfolge abweichen sollten . 'All' macht Sinn für mich – Alex

Verwandte Themen