如何检查字符串是否不等于多个字符串

bad*_*key 1 c# string compare

我希望用户插入一个字符串作为参数,然后检查该字符串是否等于多个字符串之一。

我现在的做法是

....
if(stringParam != "text1" || stringParam != "text2" || stringParam != "text3"...  stringParam != "text10")
....
Run Code Online (Sandbox Code Playgroud)

有没有办法可以写得更可读/更漂亮?可能有,但我想不出办法。

另外,字符串是大写还是小写并不重要。

Ali*_*anu 5

您可以使用哈希表、字典或哈希集。您可以将字符串作为键存储在其中,然后使用方法 ContainsKey()/Contains() 来查看您的 stringParam 是否与之前存储的任何键(“text1”、“text2”等)匹配。

    HashSet<string> mySet = new HashSet<string>(); 


    mySet.Add("text1"); 
    mySet.Add("text2"); 
    mySet.Add("text3"); 
    mySet.Add("text4"); 

    if (mySet.Contains(stringParam)) 
        Console.WriteLine("It matched"); 
Run Code Online (Sandbox Code Playgroud)

  • “HashSet&lt;T&gt;”的某些构造函数接受“IEqualityComparer&lt;T&gt;”。因此,为了适应“字符串是大写还是小写并不重要”,可以使用“IgnoreCase”字符串比较器之一,例如:`new HashSet&lt;string&gt;(StringComparer.CurrentCultureIgnoreCase)`。 (3认同)