如何在 swift 中不区分大小写地对字典数组进行排序
how to sort array of dictionary by case insensitive in swift
我有以下代码按字母升序对字典数组进行排序。但是我在大写字母之后得到了排序的小写字母键值。前任。如果键具有 "Jast"、"rat"、"Put"、"put"、"Avi"、"Que" 等值。我得到了 "Avi"、"Jast"、"Put"、"Que"、"put"、"rat" 之类的未排序的输出。我使用了以下代码
let sortedArray = (
episode_ParticipantList as NSArray
).sortedArrayUsingDescriptors(
[NSSortDescriptor(key: "FirstName", ascending: true)])
as!
[[String:AnyObject]]
怎么样:
let sortedArray = episode_ParticipantList.sort{
[=10=]["FirstName"]?.lowercaseString < ["FirstName"]?.lowercaseString
}
这可能会更快,但您需要测试一下:
import Foundation
let sortedArray = episode_ParticipantList.sort{
[=11=]["FirstName"]!.caseInsensitiveCompare(["FirstName"]!) == .OrderedAscending
}
IN SWIFT 4
responseData = responseData.sorted { ([=10=]["firstname"] as! String).localizedCaseInsensitiveCompare(["firstname"] as! String) == ComparisonResult.orderedAscending }
我有以下代码按字母升序对字典数组进行排序。但是我在大写字母之后得到了排序的小写字母键值。前任。如果键具有 "Jast"、"rat"、"Put"、"put"、"Avi"、"Que" 等值。我得到了 "Avi"、"Jast"、"Put"、"Que"、"put"、"rat" 之类的未排序的输出。我使用了以下代码
let sortedArray = (
episode_ParticipantList as NSArray
).sortedArrayUsingDescriptors(
[NSSortDescriptor(key: "FirstName", ascending: true)])
as!
[[String:AnyObject]]
怎么样:
let sortedArray = episode_ParticipantList.sort{
[=10=]["FirstName"]?.lowercaseString < ["FirstName"]?.lowercaseString
}
这可能会更快,但您需要测试一下:
import Foundation
let sortedArray = episode_ParticipantList.sort{
[=11=]["FirstName"]!.caseInsensitiveCompare(["FirstName"]!) == .OrderedAscending
}
IN SWIFT 4
responseData = responseData.sorted { ([=10=]["firstname"] as! String).localizedCaseInsensitiveCompare(["firstname"] as! String) == ComparisonResult.orderedAscending }