Swift 4 通过外键将数组映射到字典
Posted
技术标签:
【中文标题】Swift 4 通过外键将数组映射到字典【英文标题】:Swift 4 map an array to a dictionary by foreign key 【发布时间】:2018-07-18 12:03:35 【问题描述】:我有一个对象数组(外键为classId):
let studentArray = [Student(id:3, name:"John", classId:1), Student(id:4, name:"Jane", classId:1), Student(id:5, name:"Bill", classId:2)]
我正在尝试将其映射到带有 classId 键的字典,如下所示:
[1:[Student], 2:[Student]]
有没有使用字典的好方法? 我的解决方案是使用 for 循环遍历数组并将每个对象添加到字典中,但这似乎效率低下。
【问题讨论】:
【参考方案1】:Swift 4 允许您实例化按键分组的字典。这是more detail 关于它。这是一个例子:
let studentArray = [Student(id:3, name:"John", classId:1), Student(id:4, name:"Jane", classId:1), Student(id:5, name:"Bill", classId:2)]
let dictByKeyVersionOne = Dictionary(grouping: studentArray, by: student in student.classId)
或者,您可以使用$0.classId
创建字典,如下所示:
let dictByKeyVersionTwo = Dictionary(grouping: studentArray, by: $0.classId)
【讨论】:
@LeoDabus 我也喜欢这样,但我怀疑他有点新,所以我做了一些更具可读性的东西。 :) @Adrian 忘了提Dictionary(grouping: studentArray) $0.classId
@LeoDabus 谢谢。以上是关于Swift 4 通过外键将数组映射到字典的主要内容,如果未能解决你的问题,请参考以下文章
CoreData:从字典数组插入到SQLite数据库中发生未排序 - 因此无法设置外键