2012-07-08 74 views
0

我試圖檢查給定的值是否包含在特定的字段中。這裏是我寫的問題使用包含()方法wpf

bool _Contains = LabelDetails.Name.Contains("1"); 

現在想在cantains檢查多個值method.I代碼試圖像下面,但顯示異常(「沒有重載方法‘包含’3個參數」);

bool _Contains = LabelDetails.Name.Contains("1","2","3"); 

回答

2

我假設你有一個文本框與文本values.Then你想檢查一些列表值是否包含在您的文本框中,並得到結果在布爾(真或假)。真正意味着你想要做something.False意味着你想要做的事

List<string> Items = new List<string>() { "1", "2", "3" }; 
foreach (string item in Items) 
{ 
    bool _Contains = TextBox.Text.Contains(item); 
    if (_Contains == true) 
     { 
      //do something 
     } 
    else 
     { 
      //do something 
     } 
} 
+0

謝謝你chandru ....這是我需要的。 – 2012-07-08 10:32:32

5

這是因爲Contains只是檢查給定字符串中是否存在子字符串。它應該如何知道你的意思是.Contains("foo", "bar")?包含兩個之一?包含兩個?一個接一個地包含它們,但不是其他方式?

你可以使用正則表達式來檢查字符串給定的列表中的一個存在:

Regex.IsMatch("foo|bar|baz", LabelDetails.Name) 

或者創建一些擴展方法:

public static bool ContainsAll(this string s, params string[] args) { 
    foreach (string x in args) { 
     if (!s.Contains(x)) return false; 
    } 
    return true; 
} 

public static bool ContainsAny(this string s, params string[] args) { 
    foreach (string x in args) { 
     if (s.Contains(x)) return true; 
    } 
    return false; 
} 
0

您可以通過自定義方法傳遞名字實現這一目標,如果你還想要你做這個String類

的擴展方法
public bool Contains(string name, params string[] pStrings) 
{ 
    return pStrings.Any(pString => name.Contains(pString)); 
}