У меня уже есть код для сортировки по 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)")
}
Спасибо @Aaron за исправление моего кода. – Cyrille