是否可以使用一个可等同的对象字段对一组对象使用 Contains?
Is it possible to use Contains on an array of objects using one equatable object field?
以下面的对象为例,是否可以使用数组“.contains”方法仅根据“number”字段检查此对象的数组是否包含特定数字?
struct AvailableDay {
var someField : someObject
var number : Int
}
数组:
var availableDay : [AvailableDay]
availableDay.contains(...) /*Just to absolutely clarify what I meant by "contains".*/
使用contains(where:
availableDay.contains(where: { [=10=].number == yourDesiredNumber})
或者,您可以 override
仅检查 number
属性 的公平一致性,如下所示:
extension AvailableDay: Equatable {
static func == (lhs: AvailableDay, rhs: AvailableDay) -> Bool { lhs.number == rhs.number }
}
以下面的对象为例,是否可以使用数组“.contains”方法仅根据“number”字段检查此对象的数组是否包含特定数字?
struct AvailableDay {
var someField : someObject
var number : Int
}
数组:
var availableDay : [AvailableDay]
availableDay.contains(...) /*Just to absolutely clarify what I meant by "contains".*/
使用contains(where:
availableDay.contains(where: { [=10=].number == yourDesiredNumber})
或者,您可以 override
仅检查 number
属性 的公平一致性,如下所示:
extension AvailableDay: Equatable {
static func == (lhs: AvailableDay, rhs: AvailableDay) -> Bool { lhs.number == rhs.number }
}