列表框重复

时间:2013-02-28 11:05:45

标签: c# asp.net button textbox listbox

我遇到列表框问题 如果我有一个文本框和一个添加按钮,将数据放入列表框 意外地两次输入相同的名字 如何防止列表框中的重复项?
我是否将代码输入按钮部分或列表框下?

4 个答案:

答案 0 :(得分:3)

您可以在添加之前检查它是否已存在,例如与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添加完整的文件路径,但是您想要防止添加具有相同文件名的第二个文件,您可以使用Path课程:

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

答案 1 :(得分:1)

在按钮单击中,您可以使用以下内容:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

    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()));
}