Remova estruturas duplicadas na matriz com base na propriedade struct no Swift

Eu fiz uma estrutura simples e implementei o protocolo Equatable:

extension MyModelStruct: Equatable {}

func ==(lhs: NModelMatch, rhs: NModelMatch) -> Bool {
    let areEqual = lhs.id == rhs.id
    return areEqual
}

public struct MyModelStruct {

    var id : String?
    var staticId : String?

    init(fromDictionary dictionary: NSDictionary){
        id = dictionary["id"] as? String
        ...
}

Então, no meu projeto, recebo uma matriz de [MyModelStruct], o que devo fazer é remover todos os MyModelStruct que têm o mesmo ID

let val1 = MyModelStruct(id:9, subId:1)
let val2 = MyModelStruct(id:10, subId:1)
let val3 = MyModelStruct(id:9, subId:10)

var arrayOfModel = [val1,val2,val3]; // or set but i do not know how to use a set
var arrayCleaned = cleanFunction[M2,M3] 

Como posso fazer a função cleanFunction?

Alguém pode ajudar por favor. Obrigado por tudo. Xcode: Versão 7.3.1

questionAnswers(4)

yourAnswerToTheQuestion