我有一个这样的课程
Public Class Car
Public Property Brand As String
Public Property Model As String
Public Property Horsepower As Integer
End Class
并像这样从这个类中创建了一个对象的集合
Dim myCarCollection As List(Of Car) = New List(Of Car) From {
New Car() With {.Brand = "VW", .Model = "Golf", .Horsepower = "100"},
New Car() With {.Brand = "Mercedes", .Model = "C220", .Horsepower = "110"},
New Car() With {.Brand = "Porsche", .Model = "911", .Horsepower = "341"}}
现在,例如我想删除所有品牌不是大众汽车且马力小于300的汽车。哪种“最好”的方式呢?我看到这个集合有类似myCarCollection.Where
的东西,有人可以解释一下如何做到这一点吗?
编辑:我知道如何使用for
/ foreach
,但我正在考虑采用更智能的方法。
答案 0 :(得分:6)
您可以使用RemoveAll删除不满足您条件的汽车
myCarCollection.RemoveAll(Function(x) x.Brand <> "VW" AndAlso
x.Horsepower < 300)
当您向集合中添加Car时,请不要使用由Option Strict set to Off感谢VB编译器提供的自动转换。从长远来看,这种选择比实际情况更麻烦。
答案 1 :(得分:4)
您可以使用RemoveAll
:
myCarCollection.RemoveAll(Function(c As Car) c.Brand <> "VW" AndAlso
c.Horsepower < 300)