2016-11-06 112 views
1

在我的程序中的家伙我试图通过检查文本框中被恳求什么来查找我的列表框中的重复项,尽管我似乎无法使其工作,重复只是添加到数组/列表框,任何建议?C#检查重复项

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

回答

2

您元素添加到您的项目集合是这样:

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

请注意\t在插入字符串的开头?现在
,你应该考虑这个\t当您检查字符串是否相等

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

(或只是删除\t当你插入)

+1

你是对的,谢谢你的评论。 – mybirthname

+0

谢谢史蒂夫,感谢帮助! – nothing

0

只需添加到@mybirthname anwser,你也可以使用LINQ代替的foreach,像这样:var isDublicate = !lstHoldValue.Items.All(x=>x.ToString() != test)

+0

也许你指的是任何不是全部。然而,正如解释说问题不是ObjectCollection元素上的ToString(),而是比较字符串的差异 – Steve

+0

@Steve我有一个字符串应该与其他字符串不同,所以所有的字符串应该不同于我的字符串。 'All'对我来说很有意义 – Alex