2014-02-09 2 views
-1

У меня есть коллекция объектов EXPANDO/динамическую, какЗапрашивания коллекции объектов EXPANDO с помощью Dynamic LINQ

var lst = new List<dynamic>(); 
dynamic exp1 = new ExpandoObject(); 
exp1.Name = "ddd"; 
lst.Add(exp1); 
dynamic exp2 = new ExpandoObject(); 
exp2.Name = "aaa"; 
lst.Add(exp2); 

Когда я делаю

var query = from t in lst 
where t.Name == "ddd" 
select t; 

Но когда я использую динамическую Linq библиотеку

var query = lst.AsQueryable().Where("[email protected]", "ddd"); 

Я получаю исключение синтаксического анализа из динамической библиотеки linq.

Пожалуйста, помогите мне в этом.

+2

Не переходи-пост по сети SE. Просто спроси один раз и будьте терпеливы. Если вы спросите не в том месте, кто-то сообщит вам и даже может перенести ваш вопрос в нужное место (как это произошло здесь). –

+0

Я думал, что программисты совершенно разные. Теперь я смущаюсь, какой из них активен. Пожалуйста, подтвердите –

+1

Они оба очень активны, но [что вы можете спросить у программистов] (http://programmers.stackexchange.com/help/on-topic) (концептуальные вопросы) отличается от [того, что вы можете задать в stackoverflow] (http://stackoverflow.com/help/on-topic) (конкретные проблемы программирования). –

ответ

1

ExpandoObject реализует IDictionary<string, object>, так что вы можете воспользоваться этим:

var query = from t in lst 
where ((IDictionary<string, object>)t)["Name"] == "ddd" 
select t; 
+0

Hi svick, Я ищу поддержку Dynamic LINQ для запроса коллекции объектов расширения. Кроме того, он работает непосредственно с '.' –

+0

Я предположил, что вы получаете 'Name' как строку, которая не работает с' .'. Если это не так, зачем нужен Dynamic LINQ? – svick

+0

Hi svick, Короче говоря, я пытаюсь создать механизм правил. Мне нужен какой-то возможный способ. Теперь я пытаюсь использовать комбинацию объекта Expando и TypeDescriptionProvider и изменяя код Dynamic Linq везде, где это необходимо. –

Смежные вопросы