如何通过Object Value从List(Of myClass)中删除对象?

时间:2011-09-14 06:56:08

标签: .net vb.net list

是否有一种使用指定值从列表中删除对象的简单方法? 我在列表中添加了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

3 个答案:

答案 0 :(得分:6)

  

Persons.RemoveAll(person => person.Name ==“Jamie”)

VB中的

Persons.RemoveAll(Function(person) person.Name = "Jamie")

(谢谢Heinzi)

答案 1 :(得分:3)

它只是这样做:

Persons.Remove(Persons.Single(Function(person) person.Name = "Jamie"))

答案 2 :(得分:1)

嗯,你有几个选择。

  1. 您可以覆盖类型的.Equals方法,并使用Name属性作为确定等效性的键。对于Person课程,这可能不是一个好主意,因为多人可能具有相同的名称。

  2. Persons.RemoveAll(Function(person)person.Name =“Jamie”)