C#模拟运算符中的sql

时间:2010-04-29 13:43:50

标签: c#

SQL中有运算符

SELECT * FROM MyTable WHERE id IN (1, 2, 3, 4, 5)

C#中是否有类似的语法,我的意思是

if(variable in (1, 2, 3, 4, 5)){
}

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)

Enumerable.Contains

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;
}