我有一个包含产品名称和产品价格的XML目录。
我使用以下代码成功选择了我的目录中的所有项目:
var products = xElem.Descendants("catalog")
.Select(x => new
{
ProductPrice= x.Element("Price").Value,
ProductName = x.Element("Name").Value
});
如何修改上面的代码,只选择名称中包含“abc”和“xyz”的项目? 在SQL中我会使用WHERE和LIKE,在这里,我想用LINQ做这个。 感谢。
更多信息
实际上,我希望用户能够灵活地进行查询。因此,如果用户键入“红色衬衫棉”,那么我将显示具有所有这三个术语的所有项目:“红色”,“衬衫”和“棉花”。 “where”条款的数量不固定。
答案 0 :(得分:2)
var products = from d in xElem.Descendants("catalog")
where d.Element("Name").Value.Contains("abc")
|| d.Element("Name").Value.Contains("xyz")
select new { Name = d.Element("Name") .Value,
Price = d.Element("Price").Value
}
;