Luego de investigar con especialistas en esta materia, programadores de varias áreas y maestros dimos con la respuesta al problema y la compartimos en esta publicación.
Solución:
Si está buscando por el fieldname1
valor, prueba esto:
var r = exitDictionary
.Select(i => i.Value).Cast>()
.Where(d => d.ContainsKey("fieldname1"))
.Select(d => d["fieldname1"]).Cast>>()
.SelectMany(d1 =>
d1
.Where(d => d.ContainsKey("valueTitle"))
.Select(d => d["valueTitle"])
.Where(v => v != null)).ToList();
Si está buscando por el tipo de valor en el subDictionary
(Dictionary
explícitamente), puede hacer esto:
var r = exitDictionary
.Select(i => i.Value).Cast>()
.SelectMany(d=>d.Values)
.OfType>>()
.SelectMany(d1 =>
d1
.Where(d => d.ContainsKey("valueTitle"))
.Select(d => d["valueTitle"])
.Where(v => v != null)).ToList();
Ambas alternativas devolverán:
title1
title2
title3
title1
title2
title3
Una forma sería primero aplanar la lista con un SelectMany
:
subList.SelectMany(m => m).Where(k => k.Key.Equals("valueTitle"));
Esto devolverá todos los valores que coincidan con su key valueTitle
subList.SelectMany(m => m).Where(kvp => kvp.Key == "valueTitle").Select(k => k.Value).ToList();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)