我有一系列元组,如下面的
var customProducts = [(productType: String, info:[String:AnyObject?])]
参数" productType"就像水果,谷物,饮料等产品类别一样,
参数" info"是一本产品营养信息词典。
我希望根据productType获取元组数组的子集,这样我就可以获得" info"特定productType的字典。在C#中,我会使用Linq尝试类似下面的内容:
var fruits = customProducts.Where(q=>q.productType == "fruit").Select(q => q.info) as List<KeyValuePair<string, object>>;
如何使用Swift(2.x)存档相同的结果?
谢谢!
答案 0 :(得分:2)
我认为Swift的等价物是:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>My App</title>
<link rel="stylesheet" type="text/css" href="/styles.css">
</head>
<body class="no-skin">
<div id="app"></div>
<script src="/bundle.js"></script>
</body>
</html>
此处let fruits = customProducts.filter { $0.productType == "fruit" }.map { $0.info }
是fruits
,一个字典数组([[String : AnyObject?]]
数组,如果我没有记错,则与info
相同。)< / p>
答案 1 :(得分:1)
您可以使用过滤方法
let beverageInfo = (customProducts.filter { $0.productType == "Beverage" }).first?.info
现在beverageInfo
是[String : AnyObject?]?
,这是一个表示“饮料”元组信息的可选字典。
答案 2 :(得分:1)
您应该根据产品的类型
过滤数组例如
var customProducts = [(productType: String, info:[String:AnyObject?])]
let fruitProducts = customProducts.filter { product in
if product.productType == "fruit" {
return true
} else {
return false
}
}.map { $0.info }
然后你可以随意使用fruitProducts。