2016-05-02 3 views
3

Ich habe eine Dictionary die Mitglieder einer Skilodge speichert und ich möchte eine Methode, um alle Mitglieder zu löschen. Im Moment scheint es nur einen zu entfernen. Hier ist die Methode, die ich versucht:Löschen aller Einträge in einem Dictionary C# WPF

public void DeleteAll() 
{ 
    for (int i = 0; i < Skiers.Count; i = i + 1) 
    { 
     string iString = i.ToString(); 
     Skiers.Remove(iString); 
    } 
} 
+4

Try 'Skiers.Clear()' – vendettamit

+0

http://stackoverflow.com/questions/1978821/how-to-reset-a-dictionary – Sajeetharan

+0

Anderen gegeben haben du antwortest, bu t Wenn Ihre Schlüssel zu Ihrem Wörterbuch nur aufeinanderfolgende Ganzzahlen sind (was Ihr Code vorschlägt), brauchen Sie überhaupt kein Wörterbuch. Du brauchst eine Liste. –

Antwort

6

Verwendung Clear Methode Prüfung dieses link

Skiers.Clear() 
+0

Perfekt danke! Kann nicht für 10 Minuten akzeptieren, aber ich werde tun – lucycopp

+0

Clear() -Methode ist schneller als traditionelle Schleifenmethode ... –

4

Sie Skiers.Clear(); zum Entfernen aller vorhandenen Werte des gegebenen Wörterbuch verwenden können, Und Sie können Skiers= new Dictionary<T,T>() verwenden, um ein frisch zu erhalten Wörterbuch (neue Instanz);

Dictionary.Clear Method() löscht alle Schlüssel und Werte aus dem Dictionary.

Sie können auch Conditional entfernen versuchen, das Wörterbuch Lassen Sie kann als wie folgt definiert und initialisiert:

Dictionary<string, String> dictSample = new Dictionary<string, string>(); 
dictSample.Add("a", "value 1"); 
dictSample.Add("b", "value 1"); 
dictSample.Add("c", "value 12"); 
dictSample.Add("d", "value 10"); 
dictSample.Add("e", "value 1"); 

Und Sie hatten eine Anforderung einige bestimmte Elemente zu entfernen diejenigen value 1 in seinem Wert Teil haben, dann Sie können zum Entfernen von ihnen den folgenden Code verwenden:

var removable = dictSample.Where(x => x.Value == "value 1").Select(x => x.Key).ToList();; 
foreach (var dictItem in removable) 
{ 
    dictSample.Remove(dictItem); 
} 
+0

die bedingte entfernen kann Ausnahme auslösen, weil Sie ein Element einer Sammlung entfernen Sie iterieren. Versuchen Sie, ToArray oder ToList vor dem Entfernen zu verwenden. – George

+0

@George: Netter Punkt. Danke; ich habe aktualisiert –

Verwandte Themen