Swift:按2个以上的可能值对数组排序
我有一个这样的物体:Swift:按2个以上的可能值对数组排序,swift,sorting,Swift,Sorting,我有一个这样的物体: enum State { case starting case inProgress case done } struct MyData { var state: State } var array: [MyData] 现在,我想对数组进行排序,首先是开始项,然后是inProgress项,然后是完成项。我怎样才能做到 谢谢你的帮助。试试这个(操场代码) enum状态:Int{ 立案 案件进展 结案 } 结构MyData{ 变量状态:状态
enum State {
case starting
case inProgress
case done
}
struct MyData {
var state: State
}
var array: [MyData]
现在,我想对数组
进行排序,首先是开始
项,然后是inProgress
项,然后是完成
项。我怎样才能做到
谢谢你的帮助。试试这个(操场代码)
enum状态:Int{
立案
案件进展
结案
}
结构MyData{
变量状态:状态
}
让myData1=MyData(状态:.inProgress)
让myData2=MyData(状态:。完成)
让myData3=MyData(状态:。正在启动)
让myData4=MyData(状态:。正在启动)
让myData5=MyData(状态:.inProgress)
变量数组=[myData1、myData2、myData3、myData4、myData5]
var sortedArray=array.sorted(){$0.state.rawValue<$1.state.rawValue}
打印(Darray)
这种方法使用枚举的rawValue int对项进行排序。我从上面的print语句中获得了预期的输出 试试这个(操场代码)
enum状态:Int{
立案
案件进展
结案
}
结构MyData{
变量状态:状态
}
让myData1=MyData(状态:.inProgress)
让myData2=MyData(状态:。完成)
让myData3=MyData(状态:。正在启动)
让myData4=MyData(状态:。正在启动)
让myData5=MyData(状态:.inProgress)
变量数组=[myData1、myData2、myData3、myData4、myData5]
var sortedArray=array.sorted(){$0.state.rawValue<$1.state.rawValue}
打印(Darray)
这种方法使用枚举的rawValue int对项进行排序。我从上面的print语句中获得了预期的输出 一种可能的方法 使
状态
符合可比性
enum State: Int, Comparable {
case starting = 0
case inProgress = 1
case done = 2
static func <(lhs: State, rhs: State) -> Bool {
return lhs.rawValue < rhs.rawValue
}
}
一种可能的方法 使
状态
符合可比性
enum State: Int, Comparable {
case starting = 0
case inProgress = 1
case done = 2
static func <(lhs: State, rhs: State) -> Bool {
return lhs.rawValue < rhs.rawValue
}
}
let elms: [MyData] = ...
let sorted = elms.sorted { $0.state < $1.state }