sql 等价的 xElement 查询

xElement query equivalent for sql like

我正在使用 xElement 查询将 xml 文档中的数据提取到结构中。我想将存储的数据限制为仅当某些字段包含特定字符串的一部分时。

此代码有效,但字符串必须完全匹配。

 var data = from query in xmlDocFromPage.Descendants("DIRECTORY")
                   where (string)query.Element("lastNAME") == "Smith"
                   select new contactDataClass
                   {
                       lastName = (string)query.Element("lastNAME"),
                       firstName = (string)query.Element("firstNAME"),
                       middleName = (string)query.Element("middleNAME")
                   };

我正在尝试实现等同于以下 sql 外观的声明。

where (string)query.Element("lastNAME") like "%Smith%"

可以吗?

您可以使用 string.Contains 方法(在空检查后以防节点不存在):

where query.Element("lastNAME") != null && query.Element("lastNAME").Value.Contains("Smith")