繁体   English   中英

从列表框中删除选定的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM