Entfernen Sie doppelte Strukturen im Array basierend auf der struct-Eigenschaft in Swift

Ich habe eine einfache Struktur erstellt und das Equatable-Protokoll implementiert:

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
        ...
}

Then in meinem Projekt bekomme ich ein Array von [MyModelStruct], was ich tun muss, um alle MyModelStruct zu entfernen, die die gleiche ID haben

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] 

Wie kann ich die cleanFunction ausführen?

Kann jemand helfen, bitte. Danke für alles. Xcode: Version 7.3.1