如何在 c# 中从下拉列表控件中删除项



我有一个下拉列表,其中包含以下几个项目(格式为"name-number"(:

George Michael - 456456
Justin Dukes - 5644654
Peter Heins - 5456454
Mark Twain - 4454564

现在,我必须根据其他查询的值从上面的列表中删除一个项目。

我的另一个查询给了我一个字符串格式的数字,我必须删除上面下拉列表中完全相同的项目第二部分(连字符之后(。

例如:我的查询给了我"5456454"。

现在我必须从下拉列表中删除与我的查询返回的数字匹配的第三项(彼得·海因斯 - 5456454(。

我正在尝试使用

ddl.Items.Remove

但是我没有得到我应该传递的参数。下拉列表中的文本和值字段相同,我无法修改。所以我不能使用

ddl.Items.FindByValue()

有什么帮助吗?

提前谢谢。

你可以做这样的事情:

var removeItem = ddl.Items.Cast<ListItem>()
.Where(x => x.Value.Contains(number))
.FirstOrDefault()
ddl.Items.Remove(removeItem);

如果您使用 ListItem 对象填充 DropDownList,我会将文本设置为"Peter Heins - 5456454",将值设置为"5456454"。

ListItem exampleItem = new ListItem("Peter Heins - 5456454", "5456454"); 

然后,您可以按照您的描述进行操作并致电

string value = "5456454";
ListItem valueToRemove = ddl.Items.FindByValue(valueToRemove);
dd1.Remove(valuetoRemove);

编辑:如果您绝对无法更改值(无论是出于学校目的还是其他原因(,我会做这样的事情。

string id = "5456454";
foreach (ListItem item in dd1.Items)
{
if (item.Text.Contains(id))
{
dd1.Items.Remove(item);
}
}

最新更新