linq:在属性值中找到字符串的完全匹配

时间:2018-03-28 08:05:43

标签: string linq search

我的xml文件包含元素MO:

<MO name="xxxx-1000"/>

我可以通过以下方式找到MO中属性“name”的值:

string searchString;

doc.Root.Elements(ns + "MO").Where(x => x.Attribute("name").Value.Contains(searchString)

但是如果searchString = 1或10或100,它也会找到1000.它不应该找到任何我想要的输出。

在这种情况下如何找到完全匹配?

1 个答案:

答案 0 :(得分:0)

如果您只想查找完全匹配,-是否始终是分隔符?

然后你可以使用:

var query = doc.Root.Elements(ns + "MO")
    .Where(x => x.Attribute("name").Value.Split('-').Last() == searchString);

当然你可以改进它并不总是一个数字(f.e。... .Equals(searchString, StringComparison.CurrentCultureIgnoreCase))。