2011-05-06 42 views
2

的名單我有以下的XMLNode(串),其價值將是少數特定類型即:如何使用string.Contains的值

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

我想用xmlNode.Contains ("xxx","yyy")測試的XMLNode ..

什麼是正確的語法?

回答

3

如果要測試的節點的完全(完整)的值,可以通過反轉調用做到這一點;檢查已知值的列表,包含當前節點值:

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

請注意,這將只允許完全匹配,不等同於OP ['xmlNode.Contains(「xxx」,「yyy」)'這也會子串](http://msdn.microsoft.com/en-us/library/dy85x1sa。 ASPX) – sehe 2011-05-07 08:32:10

0

一個簡單的if語句將工作:

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

包含採用一個字符串來測試。

一個爲您解決問題的方法是使用一個簡單的正則表達式

using System.Text.RegularExpressions; 

if (Regex.IsMatch(nodevalue, "(Ansi_nulls|Encrypted|Quoted_identifer)")... 
2
if (new[] {"xxx","yyy"}.Any(n => xmlNode.Contains(n))) 
2

我會用sehes解決方案創建一個擴展方法:

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

這樣,你可以調用:

 xmlNode.Contains("string", "something else"); 
相關問題