前端之家收集整理的这篇文章主要介绍了
从vb.net中的List(Of t)中删除项目失败,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个通用列表,我正在使用List.Remove(对象)
删除项目.我一直在
删除项目,但每当我到达第五项我
删除它失败,并没有从列表中
删除它.我
删除的
内容似乎并不重要,但每次我尝试
删除第五项时失败的五个项目.
可能是什么导致了这个?查看List(Of T).Remove的文档,它没有指定他们用来删除项目的算法.
删除将基于在对象上
调用.Equals来匹配.默认情况下,对于给定对象,它只匹配同一个对象.如果你想要两个具有相同
属性的对象被认为是相等的,即使它们不是同一个对象,你需要覆盖Equals
方法并将逻辑放在那里.
但是,另一个好的选择是使用RemoveAll并使用您要查找的条件传入匿名委托或lambda表达式.例如.:
customers.RemoveAll(customer => customer.LastName.Equals(myCustomer.LastName));
当然,只有当你真的想要删除所有匹配的项目时才有效,和/或如果你确定只有一个匹配项目.