Wählen Sie ein Objekt aus einer verschachtelten Sammlung mit Linq aus

8

Ich habe eine Klassenstruktur etwa so:

%Vor%

Ich muss alle "Attribute" erhalten, die einen bestimmten "SomeProp" -Wert haben, egal zu welcher Attributgruppe sie gehören.

Zum Beispiel kann SomeProperty== 'A' sowohl in MyClassObj.AttributeGroup[0] als auch in MyClassObj.AttributeGroup[5] gefunden werden und ich muss eine Linq (oder etwas ähnliches) schreiben, um zwei Objekte aus diesen zwei verschiedenen Attributgruppen zu holen.

Irgendwelche Vorschläge?

    
w3dev 06.03.2013, 10:37
quelle

3 Antworten

20

Wählen Sie zuerst alle Attribute aus allen Attributgruppen aus und dann nur diejenigen mit Ihrer Eigenschaft.

%Vor%

Andere Linq-artige Syntax:

%Vor%     
JustAnotherUserYouMayKnow 06.03.2013, 10:40
quelle
2

Schauen Sie sich SelectMany an ( Ссылка ).

Zum Beispiel:

%Vor%

Diese Zeile selektiert alle Attribut-Objekte aller AttributeGroups aller MyClass-Objekte, wobei SomeProp gleich "A" ist. a im Lambda-Ausdruck für Where vom Typ Attribut.

    
Andreas Schlapsi 06.03.2013 10:51
quelle
0

Ihr Beispiel ist nicht klar; Ich kann nicht sagen, was Sie meinen, "zwei Objekte aus diesen zwei verschiedenen Attributgruppen". Ich nehme an, dass Sie die Gruppen wollen, die Attribute mit der fraglichen Eigenschaft haben:

%Vor%     
Marcelo Cantos 06.03.2013 10:42
quelle

Tags und Links