是否有一种使用指定值从列表中删除对象的简单方法? 我在列表中添加了2个人,现在如何在不使用任何循环的情况下通过名称删除某个人? (如果可能的话)
Public Class Form1
Public Persons As New List(Of Person)
Private Sub Test()
Persons.Add(New Person With {.Name = "Jamie", .Age = 99})
Persons.Add(New Person With {.Name = "Adam", .Age = 40})
'How to remove a person from the list having the name "Jamie" ?
'Persons.Remove(Name = "Jamie")... ???
End Sub
End Class
Public Class Person
Public Name As String
Public Age As Integer
End Class
答案 0 :(得分:6)
VB中的Persons.RemoveAll(person => person.Name ==“Jamie”)
:
Persons.RemoveAll(Function(person) person.Name = "Jamie")
(谢谢Heinzi)
答案 1 :(得分:3)
它只是这样做:
Persons.Remove(Persons.Single(Function(person) person.Name = "Jamie"))
答案 2 :(得分:1)
嗯,你有几个选择。
您可以覆盖类型的.Equals
方法,并使用Name
属性作为确定等效性的键。对于Person
课程,这可能不是一个好主意,因为多人可能具有相同的名称。
Persons.RemoveAll(Function(person)person.Name =“Jamie”)