C# 比较,;从asp.net Web窗体的列表框中删除项目
我在asp.net webform应用程序中有两个列表框 LIstBox1有所有项目的列表,ListBox2有指定的项目 一页加载两个ListBox1都填充了所有项目,ListBox2填充了分配的项目&我有一个按钮,可以从ListBox2中删除分配的项目C# 比较,;从asp.net Web窗体的列表框中删除项目,c#,asp.net,listbox,C#,Asp.net,Listbox,我在asp.net webform应用程序中有两个列表框 LIstBox1有所有项目的列表,ListBox2有指定的项目 一页加载两个ListBox1都填充了所有项目,ListBox2填充了分配的项目&我有一个按钮,可以从ListBox2中删除分配的项目 var itms1 = ListBox1.Items; var itms2 = ListBox2.Items; foreach (var itm in itms2) {
var itms1 = ListBox1.Items;
var itms2 = ListBox2.Items;
foreach (var itm in itms2)
{
if (itms1.Contains(itm)) itms1.Items.Remove(itm);
}
我得到了错误,如图所示
我只想比较ListBox2和ListBox1,并从ListBox1中删除匹配的ListBox2值
我尝试了不同的方法,但我不断地得到类似的错误,否则它将无法工作
ListBox将ProjectName显示为文本,ProjectID显示为ListBox值
我正在使用.net framework 4.5上的asp.net webform应用程序,您只需使用以下内容:
itms1.RemoveAll( item => itms2.Contains(item));
这段代码删除了列表2中的所有项目,这对我来说很有用
foreach (ListItem itemA in LisyBox2.Items)
{
for (int i = ListBox1.Items.Count - 1; i > -1; i--)
{
{
if (ListBox1.Items[i].Text == itemA.Text)
{
ListBox1.Items.RemoveAt(i);
}
}
}
}
它不显示RemoveAll选项,而只显示Remove&RemoveAt选项RemoveAll不显示的原因是您正在使用ListBox.ObjectCollection。如果要删除项目,为什么要首先将其放在ListBox中?简单地说,不要将它们放在列表框中。这实际上是一个编辑,用户可以更改其中的选择,因此,我必须显示用户先前在listbox2中选择的内容,但我想从Listbox1中删除listbox2中已经存在的相同项目。