Comment utiliser LINQ avec des collections dynamiques
Existe-t-il un moyen de convertir l'objet dynamic
en type IEnumerable
pour filtrer la collection avec la propriété.
dynamic data = JsonConvert.DeserializeObject(response.Content);
J'ai besoin d'accéder à quelque chose comme ceci
var a = data.Where(p => p.verified == true)
Des Idées?
51
demandé sur
Jon Skeet
2013-09-11 11:20:10
2 réponses
Tant que data
est un IEnumerable
d'un certain type, vous pouvez utiliser:
var a = ((IEnumerable) data).Cast<dynamic>()
.Where(p => p.verified);
Le Cast<dynamic>()
est un IEnumerable<dynamic>
, de sorte que le type du paramètre de l'expression lambda est également dynamic
.
87
répondu
Jon Skeet
2013-09-11 07:22:35
Essayez de lancer à IEnumerable<dynamic>
((IEnumerable<dynamic>)data).Where(d => d.Id == 1);
Cette approche est 4 fois plus rapide que les autres approches.
Bonne chance
30
répondu
Yaser Moradi
2014-06-25 06:48:10