我試圖檢查給定的值是否包含在特定的字段中。這裏是我寫的問題使用包含()方法wpf
bool _Contains = LabelDetails.Name.Contains("1");
現在想在cantains檢查多個值method.I代碼試圖像下面,但顯示異常(「沒有重載方法‘包含’3個參數」);
bool _Contains = LabelDetails.Name.Contains("1","2","3");
我試圖檢查給定的值是否包含在特定的字段中。這裏是我寫的問題使用包含()方法wpf
bool _Contains = LabelDetails.Name.Contains("1");
現在想在cantains檢查多個值method.I代碼試圖像下面,但顯示異常(「沒有重載方法‘包含’3個參數」);
bool _Contains = LabelDetails.Name.Contains("1","2","3");
我假設你有一個文本框與文本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
}
}
這是因爲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;
}
您可以通過自定義方法傳遞名字實現這一目標,如果你還想要你做這個String類
的擴展方法public bool Contains(string name, params string[] pStrings)
{
return pStrings.Any(pString => name.Contains(pString));
}
您可以參閱擴展方法
https://stackoverflow.com/a/833477/649524
public static bool In<T>(this T source, params T[] list)
{
if(null==source) throw new ArgumentNullException("source");
return list.Contains(source);
}
謝謝你chandru ....這是我需要的。 – 2012-07-08 10:32:32