Jak usunąć parę klucz-wartość ze słownika Swift?


83

Chcę usunąć parę klucz-wartość ze słownika, jak w przykładzie, jeśli to możliwe.

var dict: Dictionary<String,String> = [:]
var willRemoveKey = "SomeKey"
dict.removePair(willRemoveKey) //that's what I need

Odpowiedzi:


169

Możesz użyć tego:

dict[willRemoveKey] = nil

albo to:

dict.removeValueForKey(willRemoveKey)

Jedyna różnica polega na tym, że druga zwróci usuniętą wartość (lub zero, jeśli nie istniała)

Szybki 3

dict.removeValue(forKey: willRemoveKey)

3
powinno to teraz zostać nazwane, dict.removeValue(willRemoveKey)ponieważ wygląda na to, że nazwa .removeValueForKey została zmieniona - dzięki za pomoc!
Coty Embry

Tak ładnie i tak czysto. Kocham to!
dustinrwh

4
Jeśli wartości są opcjonalne, jak może działać składnia indeksu dolnego?
WiseOldDuck,

5
Czy ktoś jeszcze zauważył, że dokumentacja mówi, że to jest O (n), gdzie n jest rozmiarem słownika ?!
Andrew,

1
@WiseOldDuck Przypisanie indeksu dolnego tak, aby nilzawsze usuwał klucz. Aby przypisać prawdziwą nilwartość w słowniku z opcjonalnym Typem wartości, przypisz .some(nil).
BallpointBen

30

Swift 5 , Swift 4 i Swift 3 :

x.removeValue(forKey: "MyUndesiredKey")

Twoje zdrowie


7
dict.removeValue(forKey: willRemoveKey)

Lub możesz użyć składni indeksu dolnego:

dict[willRemoveKey] = nil

0

Usuń, sprawdzając warunki w pętli

var eventDateDict = [String:String]()
//Declarations
var tempDict = eventDateDict
        for value in tempDict{
            let getDate = value.key
            if getDate < Date(){
                eventDateDict.removeValue(forKey: value.key)
            }
        }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.