2010-10-21 1 views
60

Ich habe folgendes Wörterbuch:Wie kann ich ein Wörterbuch LINQ-Filter und senden es an einem Wörterbuch aus dem gleichen Typ

Dictionary<int,string> dic = new Dictionary<int,string>(); 
dic[1] = "A"; 
dic[2] = "B"; 

Ich möchte das Wörterbuch der Elemente filtern und das Ergebnis auf die gleiche Variable neu zuweisen:

dic = dic.Where (p => p.Key == 1); 

wie kann ich das Ergebnis als ein Wörterbuch aus der gleichen Art [<int,string>] zurückkehren?

Ich versuchte ToDictionary, aber es funktioniert nicht.

Vielen Dank im Voraus.

+7

In Zukunft, wenn Sie versucht haben, der offensichtliche Ansatz, aber fand es nicht funktioniert, bitte posten Sie den Code, den Sie ausprobiert haben. –

Antwort

127

ToDictionary ist der Weg zu gehen. Es funktioniert funktioniert - Sie waren es nur falsch, vermutlich. Versuchen Sie folgendes:

dic = dic.Where(p => p.Key == 1) 
     .ToDictionary(p => p.Key, p => p.Value); 

Having said that, ich nehme an, Sie wirklich wollen einen anderen Where Filter, wie Ihr gegenwärtiges wird immer nur einen Schlüssel finden ...

+0

Danke, Jon. Du hast recht, ich habe es falsch benutzt. – Homam

Verwandte Themen