【发布时间】:2015-11-20 10:30:21
【问题描述】:
基本上我有一个对象,出于这个问题的目的,我称之为“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 语句中的值,但这只会导致与原始 ifstatement 几乎相同数量的代码和为if 创建一个数组变量感觉有点矫枉过正 -
int[] values = { 1, 4, 6 };
if(values.Contains(a.b))
a.b = 8;
【问题讨论】:
-
在这些情况下,我使用数组方法 - 使代码的意图更加清晰。
-
在可读性或速度方面很难击败 3 个逻辑操作。
-
任何替代方案的可读性都会降低。我会保持原样。
-
创建一个小数组并不是“矫枉过正”。一切都与可读性和可维护性有关。
标签: c#