用于多个参数的精确匹配的C#字符串方法

时间:2017-02-16 14:44:46

标签: c#

是否有标准的 String 方法可以采用多个参数进行精确比较?

T-SQL 中的等价物将是 IN(&#39; dog&#39;,&#39; cat&#39;,...) < / p>

例如,如果有一个名为 EqualToAny()的方法,那么下面的代码应该返回false

string s="catfish";
if (s.EqualToAny("dog", "cat", "human", "dolphin"))
   return true;
else
   return false;

2 个答案:

答案 0 :(得分:1)

您可以使用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);

Fiddle

答案 1 :(得分:0)

你需要EqualsAny ..

    // string extension method 
    public static bool EqualsAny(this string source, params  string[] prms)
    {
        return prms.Contains(source);
    }