是否可以使用一个可等同的对象字段对一组对象使用 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 }
}