从vb.net中的List(Of t)中删除项目失败

前端之家收集整理的这篇文章主要介绍了从vb.net中的List(Of t)中删除项目失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个通用列表,我正在使用List.Remove(对象)删除项目.我一直在删除项目,但每当我到达第五项我删除它失败,并没有从列表中删除它.我删除内容似乎并不重要,但每次我尝试删除第五项时失败的五个项目.

可能是什么导致了这个?查看List(Of T).R​​emove的文档,它没有指定他们用来删除项目的算法.

删除将基于在对象上调用.Equals来匹配.默认情况下,对于给定对象,它只匹配同一个对象.如果你想要两个具有相同属性的对象被认为是相等的,即使它们不是同一个对象,你需要覆盖Equals方法并将逻辑放在那里.

但是,另一个好的选择是使用RemoveAll并使用您要查找的条件传入匿名委托或lambda表达式.例如.:

customers.RemoveAll(customer => customer.LastName.Equals(myCustomer.LastName));

当然,只有当你真的想要删除所有匹配的项目时才有效,和/或如果你确定只有一个匹配项目.

猜你在找的VB相关文章