我怎样才能在linq中使用“like”来表示xml

时间:2009-09-25 07:31:23

标签: xml linq linq-to-xml

我想做这样的事情。我知道这是错的:

 var a = from h in xdoc.Root.Elements()
         where h.Element().value like = "1234"
         select h;

4 个答案:

答案 0 :(得分:7)

var a = from h in xdoc.Root.Elements()
        where h.Element.value.Contains("1234") 
        select h

这将在后台生成一个“LIKE”语句。

答案 1 :(得分:6)

我认为您希望得到Contains 1234值的元素:

var a = from h in xdoc.Root.Elements()
         where h.Element().Value.Contains("1234") // like '%1234%'
         select h;

对于SQL-ish like '%value',您可以使用EndsWith,也可以使用like 'value%' StartsWith

答案 2 :(得分:1)

使用String类的辅助方法,如StartsWithEndsWith

答案 3 :(得分:0)

这里我使用StartsWith()方法来做同样的事情。

var CountryNames = from city in xdoc.Descendants("countries").Elements("city")                         
                           where city.Value.StartsWith(prefixText)
                           select city.Value;

Contains

EndsWith

StartsWith