Swift - 检查数组中是否包含具有属性的元素

46

我有一个自定义对象的数组。

我想要检查数组中是否包含一个对象,其属性等于字符串。

类似以下代码:

 if array.contains(object where object.name == name) {
     // do something
 } else {
     // don't do something
 }

在Swift中如何操作?

2
有趣的事实:我将你的问题标题复制并粘贴到谷歌搜索中,^那是第一个结果 - 请在提问之前一定要做一些研究。 - Hamish
1个回答

145

是的,

if things.contains(where: { $0.someProperty == "nameToMatch" }) {
     // found
} else {
     // not
}

3
这段代码无法编译。 - Luca Angeletti
1
@appzYourLife,它可以在Swift 3中编译。例如:if ["a", "b"].contains(where: { $0.capitalized == "A" }) { } - Cœur
需要注意的一点是,如果你在比较自定义对象数组时出现错误,那么你比较的对象必须是可比较的。要么为该对象类型添加可比较函数,要么检查该类型的特定属性。在本答案的示例中,假设 someProperty 属性是一个字符串。 - Nathan Dries
6
你可以怎样修改它以找到值 $0 的索引? - Chameleon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接