SQL中有运算符
SELECT * FROM MyTable WHERE id IN (1, 2, 3, 4, 5)
C#中是否有类似的语法,我的意思是
if(variable in (1, 2, 3, 4, 5)){
}
答案 0 :(得分:14)
你可以拥有
int[] data = {1, 2, 3, 4, 5};
if(data.Contains(variable))
{
}
答案 1 :(得分:10)
没有一个好的,但你可以自己编写一个扩展方法:
public static class Extensions
{
public static bool In<T>(this T value, params T[] items)
{
return items.Contains(value);
}
}
if (v.In(1,2,3,5)) { /* do stuff */ }
我没有测试过,但它应该是好的。
更新:正如OP建议的那样,我纠正了一些错别字。
答案 2 :(得分:2)
如果您使用的是.NET 3.5或更高版本,则可以使用Contains
:
if (new[] { 1, 2, 3, 4, 5 }.Contains(variable))
{
// do something
}
答案 3 :(得分:1)
new int[]{1,2,3,4,5}.Contains(variable)
答案 4 :(得分:1)
将扩展名放在一起很容易。
public static bool In<T>(this T value, params T[] items) where T : IEquatable<T>
{
foreach (var item in items)
{
if (value.Equals(item))
{
return true;
}
}
return false;
}