如何使用字符串.包含值列表



我有以下xmlnode (string),其值将是少数给定类型,即:

"Ansi_nulls","Encrypted","Quoted_identifer" etc.

我想使用xmlNode.Contains ("xxx","yyy") ..测试xmlnode .

如果您正在测试节点的完整(完整)值,您可以通过反转调用来完成;检查已知值列表是否包含当前节点值:

new[]{"Ansi_nulls","Encrypted","Quoted_identifer", ...}.Contains(xmlNode);

我将使用以下解决方案创建一个扩展方法:

    public static bool Contains(this string source, params string[] values)
    {
        return values.Any(value => source.Contains(value));
    }

这样你就可以调用:

        xmlNode.Contains("string", "something else");

包含要测试的字符串。

解决这个问题的一种方法是使用一个简单的正则表达式
using System.Text.RegularExpressions;
if (Regex.IsMatch(nodevalue, "(Ansi_nulls|Encrypted|Quoted_identifer)")...
if (new[] {"xxx","yyy"}.Any(n => xmlNode.Contains(n)))

一个简单的if语句就可以了:

if (xmlNode.Contains("xxx") && xmlNode.Contains("yyy"))
{
// your work
}

最新更新