0

したがって、2 つの順序付きセットがあり、一方の順序付きセットには基本的に辞書のリストがあり、もう一方の順序付きセットには辞書内の特定の値に対応する文字列があるように構造化されています。例を使用して説明しましょう。

OrderedSetA = [["key1": "test", "key2": "A"], ["key1": "test2", "key2": "B"], ["key1": "test3", "key2":"C"], ["key1": "test4", "key2": "E"]]
OrderedSetB = ["B","G","H", "A", "E", "D", "C", "F", "J", "K"]

key2したがって、基本的には、A にない B の値を無視しながら、OrderedSet B に対応する文字列に指定された順序に基づいて OrderedSetA の要素を再配置したいと考えています。たとえば、このシナリオでは、探しているのは次のようなものです:

OrderedSetC = [["key1": "test2", "key2": "B"], ["key1": "test1", "key2": "A"], ["key1": "test4", "key2":"E"], ["key1": "test3", "key2": "C"]]

これが私がこれまでに試したことです:

let orderedSetC = orderedSetA.filter {OrderedSetB.contains(($0 as AnyObject).key2)}

そして、ここで何が起こるかというと、同じものを返すだけです.OrderedSetAにないOrderedSetBに基づいてフィルタリングしていると思いますが、並べ替え/並べ替えは行われません。

これを処理する最も適切で効果的なSwift 5ベースの方法は何ですか?

ありがとう!

4

1 に答える 1