简体   繁体   English

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

[英]How to check if multidimensional array row contains non-Zero value

Just a short question regarding multidimensional arrays in C#. 关于C#中的多维数组的简短问题。

How can I check if one row of a multidimensional array contains a non-Zero value? 如何检查多维数组的一行是否包含非零值? In Matlab, the "any"-command does exactly what I need. 在Matlab中,“ any”命令完全可以满足我的需求。

Finally I need to put the request into a while condition. 最后,我需要将请求放入一会儿条件。 Means in Matlab: while(any(array[1,2,:])) --> which means: while(any-entry-of-the-row-is-not-Zero)... 在Matlab中的意思是:while(any(array [1,2 ,:]))->的意思是:while(行中的任何条目都不为零)...

I tried already the Array.Exists() or Array.Find() but it seems to work only with one-dimensional arrays. 我已经尝试过Array.Exists()或Array.Find(),但它似乎仅适用于一维数组。

Thanks 谢谢

You have a couple options 你有几个选择

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

or as Sriram Sakthivel Suggested 或根据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!

More spefically to your question 更具体地回答您的问题

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 Information MSDN信息

Any 任何

Contains 包含

IndexOf 指数

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM