2017-05-28 1 views
0

I Knoten haben folgende, die eine SammlungWo Abfrage für get Elemente aus innerlist gleich Objekten

enter image description here

dann ist, wenn ich InnerList erweitern erweitern es

enter image description here

folgenden Elemente hat

dann einmal erweitern ich eine davon ([0]), es hat folgende Eigenschaften

enter image description here

dann, wenn ich erweitere Tag es hat eine Eigenschaft Anruf Typen und dieser Zeichenfolge Wert hat.

enter image description here

so habe ich versucht, nur eine Abfrage schreiben von oben Typ Wert Elemente auszuwählen wie folgt

var selectedValues = diagram.Nodes.Where(x => x.Tag).Where(A => A.Type.Equals("SomeValue")); 

aber diese Abfrage nicht einmal kompilieren und Thesen immer Fehler

Der Typ 'Objekt' kann nicht implizit in 'bool' konvertiert werden. Eine explizite Umwandlung existiert

Kann nicht Lambda-Ausdruck bestimmt Delegattyp konvertieren, weil sind nur einige der Rückgabetypen im Block nicht implizit konvertierbar an den Delegaten Rückgabetyp

Antwort

1

Where erwartet Sie ein bool zurückkehren von deinem Lambda. Ich bin mir nicht sicher, was Sie auswählen möchten, aber Sie müssen die erste Where in eine Select oder kombinieren Sie es mit Ihrer 2. Where. Willst du so etwas?

var selectedValues = diagram.Nodes.Where(x => 
    ((YourTagType)x.Tag).Type.Equals("SomeValue")); 
+0

Nur eine NULL-Prüfung auf dem Tag hinzufügen :)) –

+0

@LaurentLequenne, wenn nötig ... –

+0

diese Fehler mit Ihrem Ansatz immer '‚Objekt‘enthält keine Definition für‚Typen‘und keine Erweiterungsmethode ' Geben Sie 'ein erstes Argument des Typs' Objekt 'akzeptieren könnte gefunden werden' – kez