C#-有没有办法缩短“;如果(a.b==1||a.b==4||a.b==6)”;
本文关键字:有没有 如果 C#- | 更新日期: 2023-09-27 18:22:46
基本上我有一个对象,为了这个问题的目的,我称它为"a"。如果对象"a"的属性"b"是1
、4
、6
中的任何一个(例如,但可能有更多合适的值),我想将其设置为8
(例如)。现在我通常会做一些类似的事情
if( a.b == 1 || a.b == 4 || a.b == 6 )
a.b = 8;
但我忍不住想,一定有更简单/更短的东西。我真的在寻找类似MSSQL in
语法的东西(如果存在的话)-
SELECT
*
FROM table
WHERE
table.field IN (1, 4, 6)
我想我可以创建一个数组,填充它,然后检查它是否在if
语句中包含我的值,但这只会导致与原始if
语句几乎相同的代码量,并且仅为if
创建数组变量感觉有点过头了-
int[] values = { 1, 4, 6 };
if(values.Contains(a.b))
a.b = 8;
在回答有关MSSQL IN
类似语法的问题时,您能做的最短的事情是:
if (new[] {1, 4, 6}.Contains(a.b)) {
a.b = 8;
}
然而,这段代码可能会带来更多的可读性问题,而不是改进。