Ich habe eine Sammlung von "Produkt" -Objekten, die jeweils eine Sammlung von Vorteilsobjekte enthalten. Siehe unten:Spezifischen Wert von verschachtelten Sammlungen mit LINQ erhalten
<Products>
<Product ID="454">
<ProductName>Economy</ProductName>
<Benefits>
<Benefit>
<Name>Medical</Name>
<Value>5000000</Value>
<Excess>100</Excess>
</Benefit>
<Benefit>
<Name>Emergency</Name>
<Value>350</Value>
<Excess>100</Excess>
</Benefit>
</Product>
</Products>
Ich versuche, eine LINQ-Abfrage erstellen für das Produkt "454", um den "Medical" Nutzen-Wert zu erhalten:
<%: Model.Products.Where(x => x.ProductId == "454").SelectMany(p => p.Benefits).Where(b => b.Name == "Medical").Select(v => v.Value.ToString()) %>
Doch diese gibt nur:
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Domain.Entities.Benefit,System.String] System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Domain.Entities.Benefit,System.String] System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Domain.Entities.Benefit,System.String] System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Domain.Entities.Benefit,System.String
Wie erhalte ich den tatsächlichen Wert, nach dem ich suche?
Wenn die Sammlung leer sein könnte, schauen Sie auch in SingleOrDefault() oder FirstOrDefault() –
@Joshua - sorry, gemeint FirstOrDefault ... – cjk
Das ist toll. Danke für Ihre Hilfe. – FloatLeft