C# 如何使用string.Contains作为值列表

C# 如何使用string.Contains作为值列表,c#,.net-4.0,C#,.net 4.0,我有以下xmlnode(字符串),其值将是少数给定类型,即: "Ansi_nulls","Encrypted","Quoted_identifer" etc. 我想使用xmlnode.Contains(“xxx”、“yyy”)测试xmlnode 正确的语法是什么?一个简单的if语句可以: if (xmlNode.Contains("xxx") && xmlNode.Contains("yyy")) { // your work } 如果您正在测试节点的完整值,可以通过反转调用

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

"Ansi_nulls","Encrypted","Quoted_identifer" etc.
我想使用
xmlnode.Contains(“xxx”、“yyy”)
测试xmlnode


正确的语法是什么?

一个简单的if语句可以:

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

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

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

Contains接受要测试的字符串

解决问题的一种方法是使用一个简单的正则表达式

using System.Text.RegularExpressions;

if (Regex.IsMatch(nodevalue, "(Ansi_nulls|Encrypted|Quoted_identifer)")...

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

    public static bool Contains(this string source, params string[] values)
    {
        return values.Any(value => source.Contains(value));
    }
这样您就可以调用:

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

请注意,这只允许完全匹配,而不等同于OP
        xmlNode.Contains("string", "something else");