我有一组“产品”对象,每个对象都包含一组 yield 对象。见下文:
<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>
我正在尝试创建 LINQ 查询以获取产品“454”的“医疗” yield 值:
<%: Model.Products.Where(x => x.ProductId == "454").SelectMany(p => p.Benefits).Where(b => b.Name == "Medical").Select(v => v.Value.ToString()) %>
然而这只是返回:
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
如何让它返回我想要的实际值?
请您参考如下方法:
如果您知道只有一个(保证),则添加 .Single() - 如果可能没有/一些而您只想要第一个,请添加 .FirstOrDefault()(没有结果则返回null)
