【问题标题】:List Box Duplicates列表框重复项
【发布时间】:2018-03-25 14:49:33
【问题描述】:

我在使用列表框时遇到问题。
如果我有一个文本框和一个将数据放入列表框中的添加按钮。
不小心输入了两次相同的名字。
如何防止列表框中出现重复项?
我是在按钮部分还是在列表框下输入代码?

【问题讨论】:

  • 你能发布一些代码吗?你已经尝试过什么?
  • @MartinMcGirk:已发布!

标签: c# asp.net button textbox listbox


【解决方案1】:

您可以在添加之前检查它是否已经存在,例如使用 Linq:

bool contains = lbName.Items.Cast<ListItem>()
    .Any(li => li.Text.Equals(txtName.Text, StringComparison.OrdinalIgnoreCase));
if(!contains)
{
    lbName.Items.Add(new ListItem(txtName.Text));
}

假设您想不区分大小写地进行比较。

编辑 由于您实际上想将完整文件路径添加到 ListBox,但又想防止添加具有相同文件名的第二个文件,您可以使用 @987654321 @类:

string fullFilePath = .... 
string fileName = Path.GetFileName(fullFilePath);
bool contains = lbName.Items.Cast<ListItem>()
    .Any(li => Path.GetFileName(li.Text).Equals(fileName, StringComparison.OrdinalIgnoreCase));
if (!contains)
{
    lbName.Items.Add(new ListItem(fullFilePath));
}

【讨论】:

  • 如果这个文本框原来是一个文件浏览器的目录,它将文件名添加到列表框中但如果再次按下文件名会重新添加文件名会发生什么?
  • @KevinChun:恐怕我跟不上。该代码适用于任何字符串,源无关紧要。或者您想向文件添加完整路径,但又想防止添加具有相同file-name 的第二个文件?
【解决方案2】:

在你的按钮点击中你可以有这样的东西:

  if (this.listBox.Items.Contains(this.txtCustomerName.Text) == false)
  {
     this.listBox.Items.Add(this.txtCustomerName.Text);
  }

或者,如果您使用的是 ListItems:

ListItem item = new ListItem(this.txtCustomerName.Text);

if (listBox.Items.Contains(item) == false)
{
   listBox.Items.Add(item);
}

【讨论】:

  • 用什么替换 txtCustomerName??
【解决方案3】:

在按钮中添加代码,您甚至可以将代码添加到文本框的事件中,实时检查输入的文本是否正确。

【讨论】:

    【解决方案4】:
        foreach (ListItem item in yourListITem.Items)
    {
        if (item.Text == yourNewListITemText.SelectedItem.Text)
        {
            empAdd = 0;
        }
    }
    if(empAdd==0)
    {
    //Item Exist....
    }
    else
    {
    //New Add
     yourListBox.Items.Add(new ListItem(yourlistbox.SelectedItem.ToString(), yourlistbox.SelectedValue.ToString()));
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多