sorting - 如何按多个值对结构数组进行排序?

标签 sorting swift

我已经有了按 1 个值排序的代码,如下所示,但我想知道如何使用多个值进行排序?我想按集合排序,然后按 someString 排序。

在本例中,一个是整数,一个是字符串。我曾考虑过将整数转换为字符串,然后将它们连接起来,但认为一定有更好的方法,因为将来我可能有 2 个整数需要排序。

struct Condition {
    var set = 0
    var someString = ""
}

var conditions = [Condition]()

conditions.append(Condition(set: 1, someString: "string3"))
conditions.append(Condition(set: 2, someString: "string2"))
conditions.append(Condition(set: 3, someString: "string7"))
conditions.append(Condition(set: 1, someString: "string9"))
conditions.append(Condition(set: 2, someString: "string4"))
conditions.append(Condition(set: 3, someString: "string0"))
conditions.append(Condition(set: 1, someString: "string1"))
conditions.append(Condition(set: 2, someString: "string6"))

// sort
let sorted = conditions.sorted { (lhs: Condition, rhs: Condition) -> Bool in
    return (lhs.set) < (rhs.set)
}

// printed sorted conditions
for index in 0...conditions.count-1 {
    println("\(sorted[index].set) - \(sorted[index].someString)")
}

最佳答案

我还不精通 Swift,但是多标准排序的基本思想是:

let sorted = conditions.sorted { (lhs: Condition, rhs: Condition) -> Bool in
    if lhs.set == rhs.set {
        return lhs.someString < rhs.someString
    }
    return (lhs.set) < (rhs.set)
}

关于sorting - 如何按多个值对结构数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040628/

相关文章:

python - 根据子字典的值对字典中的子字典进行排序

javascript - 关于 javascript 的排序函数

swift - 约束 View ImageView 内部内容 Swift

c - 使用结构数组在 C 中实现排序算法的问题

python - 在 python 中排序元组列表

swift - Firebase Auth Check 返回一个用户,即使那里(绝对)不应该是一个用户

ios - 将 iOS 应用程序限制为只能安装在一台设备上

ios - 在模拟器中安装了来自 github 的控件 - 现在它随每个应用程序一起启动

ios - Swift 4 Codable , CodingKey 仅用于解码

java - 如何找到对数组进行排序所需的最大组数?