2014-03-12 72 views
0

我应该如何写这个N?如何检查2D数组的所有第一个和第二个元素?

int[,] spn = { { 3064, 22 }, { 3064, 16 }, { 3064, 11 } }; 

if(spn[1, N] != 3064 && spn[N, 2] != 16 || spn[N, 2] != 16) 

spn [1,N]表示数组的所有第一项。 spn [N,2]表示数组的所有第二项。

+1

您还可以添加预期的输出 –

回答

0

你可以用一个阵列上迭代的for循环(MSDN for (C# Reference)

 int[,] spn = { { 3064, 22 }, { 3064, 16 }, { 3064, 11 } }; 
     int helper = 2; 
     for (var N = 0; N < spn.Length/helper; N++) 
     { 
      if (spn[N, 0] != 3064 && spn[N, 1] != 16 || spn[N, 1] != 16) 
       System.Diagnostics.Debug.WriteLine("do something"); 
     } 

由于阵中拥有唯一一个绝对的长度,节省您的辅助变量中arrayelements的数量,这仅适用于与样品同样长度的嵌套数组

0

你行你简单的循环:

bool result = true; 
for (int i = 0; i < spn.GetLength(0); i++) 
{ 
    if (spn[i, 1] != 16 || spn[i, 2] != 16) 
    { 
     result = false; 
     break; 
    } 
} 

或者你可以使用LINQ查询的所有值:

bool result = Enumerable.Range(0, spn.GetLength(0)).All(i => spn[i, 1] != 16 || spn[i, 2] != 16); 
相关问题