是否有標準字符串可以採用多個參數進行精確比較的方法?C#字符串方法在多個參數上精確匹配
在T-SQL相當於將IN( '狗', '貓',...)
例如,如果有)稱爲EqualToAny(這樣的方法,則下面的代碼應該返回false
string s="catfish";
if (s.EqualToAny("dog", "cat", "human", "dolphin"))
return true;
else
return false;
是否有標準字符串可以採用多個參數進行精確比較的方法?C#字符串方法在多個參數上精確匹配
在T-SQL相當於將IN( '狗', '貓',...)
例如,如果有)稱爲EqualToAny(這樣的方法,則下面的代碼應該返回false
string s="catfish";
if (s.EqualToAny("dog", "cat", "human", "dolphin"))
return true;
else
return false;
你需要EqualsAny ..
// string extension method
public static bool EqualsAny(this string source, params string[] prms)
{
return prms.Contains(source);
}
您可以使用Linq Any()
方法實現此目的。
string input = "catfish";
var mammals = new [] {"dog", "cat", "human", "dolphin"};
var result = mammals.Any(v => v == input);
result
將false
爲"catfish"
和true
爲"cat"
。
你也可以把這個包成一個擴展方法的字符串:
public static bool EqualsAny(this string str, IEnumerable<string> validStrings) {
return validStrings.Any(v => v == str);
}
var result = input.EqualsAny(mammals);
說明 「部分匹配」 ...如果你使用'ContainsAny',例如,如果字符串只包含「huma」,只有包含「human」,纔會返回true。 –
在你的例子中究竟是什麼? – juharr
_so鮎魚應該是false_沒有什麼意義。提供清晰的輸入和期望的輸出。 –