wir haben zwei verschachtelte Listen, vergleichbar: List<Lehrer> enthält n Elemente von List<Schueler>.
Nun möchten wir eine (LINQ) Filterung machen. Es sollen diejenigen Lehrer übrig bleiben, die einen Schüler mit dem Namen "Fritz" in ihrer Schüler-/Unterliste haben. Allerdings soll in der Ergebnisliste der Lehrer auch nur noch die Schüler Items enthalten sein, die dem Kriterium entsprochen haben (Name = Fritz).
Es sind sozusagen zwei Filterungen in einem Rutsch.
Eine "Beziehung" nicht direkt. Aber um das Problem zu lösen hatten wir extra ein Feld "LehrerNr" in die Schüler Objekte eingefügt, obwohl eigentlich gar nicht benötigt. Geholfen hat's bisher nicht...
SelectMany hatten wir auch schon zwischen. Hat leider nicht geklappt.
Was ich vergessen hatte zu erwähnen: Wir würden gern als Endergebnis die Liste der gefilterten LEHRER (mit den gefilterten Schülern im Bauch natürlich) bekommen. Mit: new {Lehrer, Schüler} wird das so aber nichts, oder?
var lehrer = from l in ll let schueler = l.schueler where schueler.Where(s => s.name == (searchedName)).Distinct().Count() > 0 select (l);
– Gast 25.07.2012
var lehrer = from l in ll let schueler = l.schueler.Where(s => s.name == (searchedName)).Select(s => s).Distinct() where schueler.Count() > 0 select new { LehrerName = l.name, Schueler = schueler.FirstOrDefault() };
– Gast 25.07.2012
Stelle deine .net-Frage jetzt!
Werde Autor auf codekicker.news
codekicker.news bietet Bloggern eine Plattform für ihre Inhalte.
internal class Lehrer : Person {
public List<Schueler> schueler = new List<Schueler>();
}
internal class Schueler : Person {}
internal abstract class Person {
public int id;
public string name;
}
Und auch SelectMany würde dann nicht helfen.