Swift 按属性获取数组的不同成员

Swift 按属性获取数组的不同成员,swift,filter,distinct-values,Swift,Filter,Distinct Values,我有一个数组 合同对象包含: String:id String:value 数组是: contract1 = Contract.new() contract1.id = 2 contract1.value = "Apple" contract2 = Contract.new() contract2.id = 2 contract2.value = "Pen" contract3 = Contract.new() contract3.id = 1 contract3.value = "Pin

我有一个数组 合同对象包含:

String:id
String:value
数组是:

contract1 = Contract.new()
contract1.id = 2
contract1.value = "Apple"

contract2 = Contract.new()
contract2.id = 2
contract2.value = "Pen"

contract3 = Contract.new()
contract3.id = 1
contract3.value = "Pineapple"


array = [Contract1, Contract2, Contract3]
我想找出ID不同的合同列表

我希望有一个解决方案,它不会让我改变对象的实现(覆盖isEqual方法等),因为在我的代码中,我会对多个对象使用它

预期结果:

[contract1,contract3]
[contract2,contract3]

理想情况下,一个附加了一个方法的扩展只返回被区分的值:

期望的结果:
[2,1]


我从类似的问题中尝试了几种方法,但要么答案已经过时,要么不符合我的需要

有了新信息,这是重复的,但仍然是重复的。第二个问题可以通过
map