Ich fange an, Lambda Ausdrücke zu lieben, aber ich kämpfe, um diese Wand zu überschreiten:
%Vor%Meine Suche:
%Vor%Ich möchte also das Objekt "CompanyWithEmployees" mit der gesuchten Person (Employee) erhalten, aber ich bekomme " Kann die Person nicht implizit in 'bool' umwandeln) "Das ist richtig, aber wenn ich das Person-Objekt nicht überlasse, wie kann der erste Find ausgeführt werden?
Weil Sie nach der Existenz suchen möchten, versuchen Sie vielleicht:
%Vor% Dies wird nach Person
mit demselben ParID
suchen; Wenn du die gleiche Person
-Instanz (Referenz) meinst, sollte Contains
genügen:
Find()
gibt das gefundene Objekt zurück. Verwenden Sie Any()
, um zu überprüfen, ob der Ausdruck für ein Element wahr ist.
.Find
gibt nur ein Objekt zurück, x.Employees.Find(..)
gibt Person
zurück.
.Find
erwartet boolesche Parameter (d. h. das Ergebnis von Bedingungen), deshalb gibt es einen Compilerfehler, der Cannot implicit convert 'Person' To 'bool'
.Where
kann mehrere Objekte zurückgeben, daher kann durch alle -Listen iterieren.
Verwenden Sie in Ihrem Fall eine Kombination aus .Where
und .Any
.
Der folgende Code veranschaulicht den Unterschied zwischen .Where
, .Find
und .Any
:
Das liegt daran, dass Sie keinen gültigen Suchausdruck für Ihre Suche auf oberster Ebene angegeben haben.
Ich werde es hier zeigen:
%Vor%Was ist die Voraussetzung für Ihren ersten Fund?