我怎么能不在if语句中重复OR的整个部分?

Jon*_*Jon 2 c# if-statement

我有这个:

if (button1.Text == "1" || button1.Text == "2" || button1.Text == "3" || button1.Text == "4")
Run Code Online (Sandbox Code Playgroud)

我如何把它变成这样的东西:

if (button.Text == "1" || "2" || "3" || 4")
Run Code Online (Sandbox Code Playgroud)

所以我不必button1.Text ==每次都重新打字?

Sel*_*enç 9

在其中创建List<string>并存储所有值.

var numbers = new List<string>  { "1","2","3","4"};
Run Code Online (Sandbox Code Playgroud)

然后使用Contains方法检查button1.Text列表中是否存在:

if(numbers.Contains(button1.Text))
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用HashSet更好和更快的查找.但在这种情况下,它似乎没有必要,因为它没有任何显着差异.

  • @ Selman22,这不是我的意见.事实上,使用数组比使用List <T>进行基本数组功能更有效.这种差异对用户来说是不可察觉的,但这并不意味着您不应该仍然选择更有效的选项.除了编译器强制执行的规则之外,编程中的实际规则很少,但有"最佳实践"这样的事情.如果有两种方法可以做某事,一种更有效,而另一种方式没有优势,那么选择应该是显而易见的.DataTable提供的不仅仅是List <T>吗?为什么不使用它? (2认同)