Lambda-Ausdrücke, wie man in einem Objekt sucht?

7

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?

    
balexandre 06.01.2009, 08:59
quelle

6 Antworten

12

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:

%Vor%     
Marc Gravell 06.01.2009, 09:06
quelle
7

Find() gibt das gefundene Objekt zurück. Verwenden Sie Any() , um zu überprüfen, ob der Ausdruck für ein Element wahr ist.

%Vor%     
David Schmitt 06.01.2009 09:08
quelle
3
%Vor%     
Mehrdad Afshari 06.01.2009 09:06
quelle
2
%Vor%

.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'

sagt

.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 :

%Vor%     
Michael Buen 06.01.2009 11:35
quelle
0

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?

    
Jon Limjap 06.01.2009 09:06
quelle
0

Am einfachsten wäre

%Vor%

ohne Nulltest

    
Dincer Uyav 06.01.2009 12:25
quelle

Tags und Links