Подтвердить что ты не робот

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

Есть ли способ конвертировать объект dynamic в IEnumerable Тип для фильтрации коллекции с помощью свойства.

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

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

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

Любые идеи?

4b9b3361

Ответ 1

Пока data является IEnumerable какого-либо типа, вы можете использовать:

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

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

Ответ 2

Попробуйте выполнить кастинг на IEnumerable<dynamic>

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

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

удача