我敢肯定答案是否定的,但我很好奇,并且认为我会问你的boffins只是为了确定。C#表达式等于多个值
在SQL你可以说:
IF (a IN (x, y))
有没有在C#中类似的东西?我知道你可以使用一个开关,但我正在寻找具体可能在if语句的东西由于有像多个表达式:
IF (a == b && c IN (x, y))
IF (a == b && c == (x || y))
编辑:好吧,我看我过于简单的数组的例子是相当明显的,我没有想到它通过。怎么样,如果是更复杂的东西,如:
if (a.GetType() == typeof(MyClass1) || a.GetType() == typeof(MyClass2))
EDIT2:只是为了澄清,这不是Is there a C# IN operator?重复的答案,这个问题不解决我的问题,因为我曾经是,也许一点点的例子可怜,但这是我当时唯一能想到的关系。 Palani Kumar提供的答案是我正在寻找的答案。
编辑3:感谢所有人的加入。很明显,有很多方法可以实现相同的结果(我现在也明白,他们几乎是一样的东西,只是表达方式不同),我也有由于您的输入,能够进一步阅读每一个。我也设法找到this "if statements matching multiple values"的帖子,是的,我完全同意它也是我所问的副本。根据反馈,我不仅学到了很多,但成功地还实现了完美的解决方案之中:
public static bool In<T>(this T obj, params T[] list)
{
return list.Contains(obj);
}
什么是'C'例如类型? –
为了公平起见,我认为@PalaniKumar的答案*与有标记的副本中的答案相同。创建一个集合并使用'.Any'与创建一个数组并使用'.Contains'基本相同。 –
@MattBurland谢谢马特,昨晚我也反映了它,它确实开始有意义。在我问了我的问题之后,我确实找到了一些相关材料,但在此之前,当我进行了一系列搜索时,我无法找到任何这就是为什么我认为答案是否定的,因此我询问了 – Storm