我在使用列表框时遇到问题。
如果我有一个文本框和一个将数据放入列表框中的添加按钮。
不小心输入了两次相同的名字。
如何防止列表框中的重复项?
我是在按钮部分还是在列表框下输入代码?
问问题
1923 次
4 回答
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));
}
于 2013-02-28T11:09:03.343 回答
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);
}
于 2013-02-28T11:07:32.853 回答
0
在按钮中添加代码,您甚至可以将代码添加到文本框的事件中,实时检查输入的文本是否正确。
于 2013-02-28T11:07:53.990 回答
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()));
}
于 2018-03-25T06:49:33.727 回答