2013-10-04 3 views
3

Так я получил этот код:Linq для SQL выбрать новую строку

ClassA { List<ClassB> classBList;} 
ClassB { List<ClassC> classCList;} 
ClassC { String ID;} 

Dictionary<string,int> dict; 
ClassA MyObject; 

Клавиши на словаре должны соответствовать полю идентификатора на ClassC И я хочу сделать следующий запрос на LINQ

List<String> matches = (from b in MyObject 
         from c in b.classCList 
         join d in dict 
         on c.ID equals dict.Key 
         select new 
         { 
          c.Value == 0 ? "YES" : "NO" 
         }).ToList(); 

Но я получаю сообщение об ошибке: "Invalid anonymous type member ..."

Нижняя линия ... как я могу иметь условие в пределах выбора нового?

EDIT

Как я могу сделать этот запрос с расширенными методами?

Любая помощь? Ty

+1

Вы не указали свое имя. – CodeCaster

ответ

10

Вы пытаетесь выбрать анонимный тип, а затем пытаетесь вернуть результат List<string>. Ваш запрос должен быть:

List<String> matches = (from b in MyObject.classBList 
         from c in b.classCList 
         join d in dict 
         on c.ID equals d.Key 
         select d.Value == 0 ? "YES" : "NO").ToList(); 
+2

Хорошо ... Я чувствую себя действительно глупым xD Ty: D –

+0

@ HélderGonçalves, не беспокойтесь, случается со всеми нами :) – Habib

+0

@ HélderGonçalves: Кроме того, комментарий CodeCaster также существует, существует _no_ действительный тип для совпадений как вы не указали имя члена анонимного класса, который вы создавали. –

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