61 votos

Cómo puedo filtrar un diccionario usando LINQ y volver a un diccionario del mismo tipo

Tengo el siguiente Diccionario:

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

Quiero filtrar los artículos del diccionario y asignar el resultado a la misma variable:

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

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

He intentado ToDictionary , pero no funciona.

Gracias de antemano.

132voto

Jon Skeet Puntos 692016

ToDictionaryes el camino a seguir. Se hace trabajo - lo fueron solo usando incorrectamente, probablemente. Prueba esto:

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

Dicho que asume realmente quieren otra Where del filtro, como su actual sólo encontrará una llave...

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X