【问题标题】:C# checking for duplicatesC# 检查重复项
【发布时间】:2016-11-06 09:11:15
【问题描述】:

我的程序中的伙计们,我试图通过检查文本框中所请求的内容来在我的列表框中查找重复项,尽管我似乎无法使其工作,重复项只是被添加到数组/列表框中,有什么建议吗?

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

【问题讨论】:

    标签: c# winforms listbox


    【解决方案1】:

    您可以通过这种方式将元素添加到您的 Items 集合中:

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

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

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

    (或者在插入时删除\t

    【讨论】:

    • 感谢史蒂夫,感谢您的帮助!
    【解决方案2】:

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

    【讨论】:

    • 可能你的意思是任何不是全部。但是,正如所解释的,问题不是 ObjectCollection 元素上的 ToString(),而是比较字符串的差异
    • @Steve 我有一个字符串应该与其他字符串不同,所以所有字符串都应该与我的字符串不同。 All 对我来说很有意义
    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2019-06-28
    • 1970-01-01
    • 2016-10-12
    相关资源
    最近更新 更多