如何检查某些内容是否等于C#中的任何值列表

Arl*_*ler 3 c#

IF语句中的OR运算符是什么

当我得到(非常有帮助的)答案时,我想回答这个问题,我认为你应该能够说出来if (title == "User greeting" || "User name") {do stuff}.现在,如果不明显为什么不起作用,请参考另一个问题及其接受的答案.

但是,我想知道,如果有一种方法可以给出一个任意的字符串列表来检查是否有什么东西等于它们.像是if(Array.OR(title, { "User greeting", "User name" })) continue;有这样的事情,还是我在黑暗中拍摄?它似乎很容易实现.

Cor*_*Air 6

您可以尝试Contains运算符:

String[] array = {"One", "Two", "Three"};
if (array.Contains("One"))
{
     //Do stuff       
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果选项数量很大,则应使用可以更有效搜索的数据结构,例如HashSet.对于小数据集,它是不相关的. (2认同)

Arl*_*ler 5

CorrugatedAir 的示例非常好,但是如果需要,您可以将其内联包含在内。

if (new string[] { "test1", "test2", "test3" }.Contains("test1")) Console.WriteLine("it works");
Run Code Online (Sandbox Code Playgroud)

它确实有效:http://ideone.com/QzbvKV(感谢Soner)

所以我的代码看起来像:if (new string[] { "User greeting", "User name" }.Contains(title)) Console.WriteLine("title contained");

http://ideone.com/PYugJu

PS 感谢 Soner 提供的链接,我以前从未听说过 ideone!