[英]If statement selecting only first value in linq2xml query
我有一个正在读取的 XML 文件。 我正在尝试检查 Product.Id 是否在 XML 文件中。 问题:它只读取第一个 XML 产品值。
我有以下 if 语句:
if ((int)user.ElementAt(0).Element("Product").Element("Id") == product.Id)
{
// Do some logic
}
用户 select 看起来像这样:
var user = from item in doc.Descendants("User")
where (string)item.Element("Username") == username
select item.Element("UserProducts");
select 导致此 XML:
<UserProducts>
<Product>
<Id>1</Id>
<Name>Mouse</Name>
<Amount>2</Amount>
</Product>
<Product>
<Id>2</Id>
<Name>Keyboard</Name>
<Amount>1</Amount>
</Product>
</UserProducts>
if 语句仅检查第一个 Product 条目(ID 1、Name Mouse、Amount 2)。 它不检查第二个条目。
为什么它不检查第二个条目,我该如何修复它以便检查所有条目?
预期的 output:检查所有产品条目的 if 语句,而不仅仅是第一个条目。
在select item.Element("UserProducts")
) 之后添加.ToList()
) 并检查foreach
循环中的条件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.