C# 是否有单个命令来确定变量是否是定义集的一部分

C# 是否有单个命令来确定变量是否是定义集的一部分,c#,C#,这个问题很难回答,但比如说,我想要这样的东西: int x = 5; int z[] = {1,12,22,56}; if ((x==z[0]) || (x==z[1]) || (x==z[2]) || (x==z[3])) { [self fooOnYou:x] } 有没有更干净或更优雅的方法可以做到这一点?我相信您正在尝试找出整数值数组中是否存在整数值。如果数组已排序,则应使用算法查找该值。如果不是(并且您不想对其进行排序),则可以使用简单的for循环来查找所需的值: int

这个问题很难回答,但比如说,我想要这样的东西:

int x = 5;
int z[] = {1,12,22,56};

if ((x==z[0]) || (x==z[1]) || (x==z[2]) || (x==z[3])) {
     [self fooOnYou:x]
}

有没有更干净或更优雅的方法可以做到这一点?

我相信您正在尝试找出整数值数组中是否存在整数值。如果数组已排序,则应使用算法查找该值。如果不是(并且您不想对其进行排序),则可以使用简单的for循环来查找所需的值:

int findValue(int value, int array[], int size) {

    for (int i = 0; i < size; ++i) {
        if (array[i] == value) {
            return i;
        }
    }

    return -1;
}
int-findValue(int-value,int-array[],int-size){
对于(int i=0;i
答案可能是:

using System.linq;
...
if (z.Any(i => i == x))
{
    // Do your stuff here.
}

在数组中循环。差不多 对于(int i=0,i您可以在
System.Linq
命名空间中使用
Contains()

int x = 5;
int[] z = new {1,12,22,56};

if (z.Contains(x)) 
{
     // do your stuff here...
}

您将其标记为C,C#(有两个不同的答案),然后使用目标C代码。您询问的是哪一个?是的-看看数组方法:数组有4个元素长,但您检查了第五个元素
[4]
。您是否打算这样做并打算跳过元素
[1]
也是吗?同意,答案完全取决于您所针对的语言。例如,C#有许多集合操作,这将使它变得相当简单…我不太确定。问题是询问一个子集
,并跳过元素.正确--我想您可以传递额外的参数来创建所需的索引子集进行测试。在任何情况下,他都应该使用Linq或更有效的方法(并且已经证明有效)。这是问题示例的精确副本。
Contains()
any()更简单
用于此目的,但
Any()
有效。