我想知道是否有一种方法可以将整数变量与 if 语句中的整数列表进行比较,就像我们可以在 SQL WHERE CLAUSE 中那样,
WHERE MY_ID IN (1,2,3,4,5,6)
如果它存在于c#中,我想使用相同的功能
if(myid in (1,2,3,4,5,6)){}
这似乎是一个愚蠢的问题,但如果存在它会为我节省很多时间
我想知道是否有一种方法可以将整数变量与 if 语句中的整数列表进行比较,就像我们可以在 SQL WHERE CLAUSE 中那样,
WHERE MY_ID IN (1,2,3,4,5,6)
如果它存在于c#中,我想使用相同的功能
if(myid in (1,2,3,4,5,6)){}
这似乎是一个愚蠢的问题,但如果存在它会为我节省很多时间
if
您可以直接在语句中使用数组聚合,如下所示:
if (new[] {1,2,3,4,5,6}.Contains(id)) {
}
注意:您需要添加using System.Linq
才能编译。
试试这个:
var numbers = new List<int>() {1,2,3,4,5,6};
if (numbers.Contains(myId))
{
}
int[] intArray = { 1, 2, 3, 4, 5 };
if (intArray.Contains(3))
// ...
或者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
使用Contains
Extension 方法,您可以轻松实现此目的:
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 文章:
使用默认相等比较器确定序列是否包含指定元素。