【发布时间】:2020-12-03 20:43:34
【问题描述】:
我有这个代码:
enum CountryInfoColor : String, CaseIterable {
case Canada = "green1"
case USA = "green2"
case Brazil = "green3"
case Australia = "purple1"
case Germany = "purple2"
case China = "purple3"
case Japan = "blue1"
case Mexico = "blue2"
}
我拥有的枚举超过 1000 行,我正在寻找一种基于案例名称过滤枚举的方法,因为每个案例名称都是一个唯一元素。
这样的事情当然不起作用:
var enumArrayFiltered = CountryInfoColor.allCases.filter{ $0.contains("Canada") } 因为 $0 没有成员“包含”。
我知道可以很容易地根据它们的 rawValues 在枚举数组上使用过滤器和包含函数,如下所示:var enumFilteredRawValues = CountryInfoColor.allCases.filter{$0.rawValue.contains("greeen") }
但是基于枚举case本身就不能轻松使用filter和contain函数吗?
【问题讨论】: