2010-10-21 18 views
60

Tengo el siguiente diccionario:Cómo puedo filtrar un diccionario utilizando LINQ y devolverlo a un diccionario del mismo tipo

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

Quiero filtrar los elementos del diccionario y reasignar el resultado de la misma variable:

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

¿Cómo puedo devolver el resultado como un diccionario del mismo tipo [<int,string>]?

Intenté ToDictionary, pero no funciona.

Gracias de antemano.

+7

En el futuro, si usted ha intentado el enfoque obvio, pero descubrió que no funciona, publique el código que ha intentado. –

Respuesta

127

ToDictionary es el camino a seguir. Es funciona - se suponía que solo lo estaba usando incorrectamente. Prueba esto:

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

Una vez dicho esto, yo supongo que realmente quieren un Where filtro diferente, ya que su actual será sólo alguna vez encontrar una llave ...

+0

Gracias, Jon. Tienes razón, lo estaba usando incorrectamente. – Homam

Cuestiones relacionadas