XML LINQ:如何在 where 中使用 select?

发布于 2024-12-09 21:22:21 字数 514 浏览 0 评论 0原文

我有一个包含产品名称和产品价格的 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 来做到这一点。 谢谢。

更多信息

其实我希望用户能够灵活查询。因此,如果用户输入“红色衬衫棉”,那么我将显示包含所有这 3 个术语的所有项目:“红色”、“衬衫”和“棉”。 “where”项的数量不固定。

I have an XML catalog with product Name and product Price.

I successfully select all items from my catalog with this code:

  var products = xElem.Descendants("catalog")
            .Select(x => new
            {
                ProductPrice= x.Element("Price").Value,
                ProductName = x.Element("Name").Value
            });

How do I modify the above code to select only items whose names contain "abc" and "xyz"?
In SQL I'd use WHERE and LIKE, here, I want to do this with LINQ.
Thanks.

MORE INFO

Actually, I want the user to be able to query flexibly. So if the user types "red shirt cotton" then I will show all items that has all those 3 terms: "red", "shirt" and "cotton". The number of "where" terms are not fixed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南风起 2024-12-16 21:22:21
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
                          }
;
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
                          }
;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文