将整数变量与if语句中的整数列表进行比较的任何方法

时间:2013-10-30 14:12:39

标签: c#

我想知道是否有办法将整数变量与if语句中的整数列表进行比较,因为我们可以在SQL WHERE CLAUSE中执行此操作,

WHERE MY_ID IN (1,2,3,4,5,6)

如果它存在于c#

中,我想使用相同的功能
if(myid in (1,2,3,4,5,6)){}

这似乎是一个虚假的问题但如果存在的话,它会为我节省很多时间

5 个答案:

答案 0 :(得分:6)

您可以直接在if语句中使用数组聚合,如下所示:

if (new[] {1,2,3,4,5,6}.Contains(id)) {
}

注意:您需要添加using System.Linq才能进行编译。

答案 1 :(得分:3)

试试这个:

var numbers = new List<int>() {1,2,3,4,5,6};

if (numbers.Contains(myId))
{
}

答案 2 :(得分:1)

int[] intArray = { 1, 2, 3, 4, 5 };
if (intArray.Contains(3))
        // ...

答案 3 :(得分:0)

List<T>.Contains之外,如果您要执行此操作以跟踪已输入的值,则可以使用HashSet<int>,因为如果值为Add方法,则返回true加入:

var numbers = new HashSet<int>();

if (numbers.Add(myNumber))
{
    // myNumber has just been inserted into numbers
}

HashSet还具有额外的好处,可以根据哈希值快速查找其中的特定值,而使用int,哈希只是int本身。

它有Contains

if (numbers.Contains(myNumber))
{}

IEnumerable还有一个Contains扩展方法用于其他任何方法:

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains(v=vs.110).aspx

答案 4 :(得分:0)

使用Contains扩展方法,您可以实现这一目标:

var myNumberList = new List<int>(){1,2,3,4};

// check using the Contains extension method

if(myNumberList.contains(TARGET_NUMBER))
{
 // do your stuff here
}

来自官方MSDN文章:

  

使用确定序列是否包含指定元素   默认的相等比较器。

链接:http://msdn.microsoft.com/en-us/library/bb352880.aspx