我想知道是否有办法将整数变量与if语句中的整数列表进行比较,因为我们可以在SQL WHERE CLAUSE中执行此操作,
WHERE MY_ID IN (1,2,3,4,5,6)
如果它存在于c#
中,我想使用相同的功能if(myid in (1,2,3,4,5,6)){}
这似乎是一个虚假的问题但如果存在的话,它会为我节省很多时间
答案 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文章:
使用确定序列是否包含指定元素 默认的相等比较器。