如何检查多维数组行是否包含非零值

时间:2014-08-29 06:04:04

标签: c# multidimensional-array while-loop row

关于C#中多维数组的简短问题。

如何检查多维数组的一行是否包含非零值? 在Matlab中,“any”命令完全符合我的需要。

最后,我需要将请求置于while条件下。 Matlab中的均值:while(any(array [1,2,:])) - >这意味着:while(任何行的入口不是零)......

我已经尝试过Array.Exists()或Array.Find()但它似乎只适用于一维数组。

由于

1 个答案:

答案 0 :(得分:1)

你有几个选择

myMultiArray.Any(row => row.Contains(Something));

或作为Sriram Sakthivel建议

foreach(var row in myMultiArray)
    if(row.Contains(Something)
        //Found it!

foreach(var row in myMultiArray)
    if(row.IndexOf(Something) >= 0)
        //Found it!

更加特别针对您的问题

myMultiArray.Any(row => row.Any(cell => cell != 0));

foreach(var row in myMultiArray)
    foreach(var cell in myMultiArray)
        if(cell != 0)
            //Found it!

for(int i = 0; i < array.GetLength(0); i++)
    for(int j = 0; j < array.GetLength(1); j++)
         if(array[i,j] != 0)
             //Do Something

MSDN信息

Any

Contains

IndexOf