我在操场上有以下代码:
struct Car: Codable, Equatable, Identifiable {
var id:Int
var name:String
}
struct Dealer: Codable, Equatable, Identifiable {
var id:Int
var name:String
var cars:[Car]
}
struct Response: Codable, Equatable, Identifiable {
let id:UUID
var dealers:[Dealer]
}
var result = Response(id:UUID(), dealers: [])
func setup() {
// MOCK FOR NOW
var dealers = [Dealer]()
for n in 0..<15 {
var cars = [Car]()
for c in 0..<100 {
cars.append(Car(id: c+n, name: "Car \(c)_\(n)"))
}
dealers.append(Dealer(id: n, name: "Dealer \(n)", cars: cars))
}
result = Response(id:UUID(), dealers: dealers)
}
setup()
//print("result: \(result)")
let searchResult = result.dealers.filter { dealer in
dealer.name.contains("Dealer 0")
}
所以这是一系列的经销商,每个经销商都有一系列的汽车.
经销商和汽车都有一个名字:字符串财产.例如,在给定搜索字符串"car 23_0"的情况下,我想过滤掉result
,这样包含该汽车的经销商将保留为区段标题(我正在使用它来驱动一个区段表),并显示汽车行……因此,我想要在此代码中构造的result
辆汽车中按名称搜索汽车.如果我想搜索经销商,我可以很容易地这样做:
let searchResult = result.dealers.filter { dealer in
dealer.name.contains("Dealer 0")
}
我不知道怎么用result
上的名字搜索汽车.
我怎么才能过滤出result
辆车中任何一辆不符合.contains("Cat 23_0")
标准的车?