XML LINQ:如何使用select在哪里?

时间:2011-10-13 22:08:14

标签: xml linq select where

我有一个包含产品名称和产品价格的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”条款的数量不固定。

1 个答案:

答案 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
                          }
;