Как использовать LINQ с динамическими коллекциями


есть ли способ, чтобы преобразовать dynamic объект IEnumerable тип для фильтрации коллекции со свойством.

dynamic data = JsonConvert.DeserializeObject(response.Content);

мне нужно получить доступ к чему-то вроде этого

var a = data.Where(p => p.verified == true)

Какие Идеи?

2 51

2 ответа:

пока data это IEnumerable в некотором роде, вы можете использовать:

var a = ((IEnumerable) data).Cast<dynamic>()
                            .Where(p => p.verified);

The Cast<dynamic>() в итоге IEnumerable<dynamic> так что тип параметра лямбда-выражения также dynamic.

попробуйте кастинг на IEnumerable<dynamic>

((IEnumerable<dynamic>)data).Where(d => d.Id == 1);

этот подход является в 4 раза быстрее, чем другие подходы.

удачи