C# - 有没有办法缩短“if(a.b == 1 || a.b == 4 || a.b == 6)”

时间:2015-11-20 10:30:22

标签: c#

基本上我有一个对象,出于这个问题的目的,我称之为“a”。如果对象“a”的属性“b”是146中的任何一个(例如,但可能有更多适当的值)我想将其设置为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语句中的值,但这只会产生与原始{{1}相同数量的代码声明和为if创建一个数组变量感觉有点矫枉过正 -

if

1 个答案:

答案 0 :(得分:3)

回答有关MSSQL IN类似语法的问题,您可以做的最简单的事情是:

if (new[] {1, 4, 6}.Contains(a.b)) {
    a.b = 8;
}

但是,此代码可能会带来更多可读性方面的问题。