[英]Removing Selected Values from ListBox
我从COL_name获取值集合并将每个值添加到名为lstDisplay的列表框中,并且值也被添加。同时,我需要从lstAvailable ListBox中删除COl_name中的相同值,但这些值仅在gettin添加到lstDispaly中 ,它不会从另一个列表框namde中删除为lstAvailable 。
foreach (string drr in COl_name)
{
lstDispaly.Items.Add(drr);
lstAvailable.Items.Remove(drr);
}
谢谢..
这意味着,您在lstAvailable中没有drr对象。 尝试这样做:
foreach (string drr in COl_name)
{
lstDispaly.Items.Add(drr);
lstAvailable.Items.RemoveAt(COL_name.IndexOf(drr));
}
或者您可以尝试在类中重写Equals()方法
ListBox.ObjectCollection.Remove
使用Equals
来确定两个对象是否相等。 因此,如果您的对象(它是什么类型?)没有令人讨厌地覆盖Equals
则可以比较引用。 如果两个对象不是同一参考,则认为它们不相等。
另一个原因可能是ListBox
包含的对象不是字符串,而是您正在“删除”字符串。 然后,您可以使用RemoveAt
:
var obj = lstAvailable.Items.Cast<object>()
.Select((obj, index) => new{ obj, index })
.FirstOrDefault(x => (x.obj == null ? "" : x.obj.ToString()) == drr);
if(obj != null)
lstAvailable.Items.RemoveAt(obj.index);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.