2010-12-07 18 views
0

Ich habe den folgenden Code verbinden: genannt GeschichteMit Linq Lambda Nested Expression zwei Listen

 List<MyClass> list1 = GetList1Contents(); 
     List<MyClass> list2 = GetList2Contents(); 

     foreach (MyClass eachClass in list1) 
     { 
      List<MyClass> results = (list2.Select(x => x.History.Select(z => (z.Key == eachClass.ID)))); 
     } 

MyClass enthält eine Liste. Ich versuche, alle Einträge in list2 mit den History-Einträgen in Liste 1 zu vergleichen - aber der Compiler mag meine Syntax nicht.

+2

Sie möchten wahrscheinlich Where oder Any (und/oder einen Join) verwenden, aber es ist schwer zu wissen, was genau Sie erreichen möchten. Was ist der Typ der Verlaufsliste? Was sind History.Key und MyClass.ID? Bitte geben Sie weitere Einzelheiten an. –

+1

Sie sollten 'Where' (oder' Any', 'FirstOrDefault') anstelle von' Select' verwenden, um Elemente zu finden. 'Select (z => z.Key == id)' gibt tatsächlich ein 'IEnumerable ' zurück. –

Antwort

2
List<MyClass> results = list2.Where(x => x.History.Any(z => (z.Key == eachClass.ID))).ToList();