使用lambda检查int数组是否包含!= 0值

时间:2010-05-26 19:24:47

标签: c# lambda multidimensional-array

我有二维数组

 List<List<int>> boardArray

如何枚举抛出此数组以检查它是否包含除0以外的其他值? 我想到boardArray。包含 ForEach ,导致它返回 bool 值,但我对lambda表达式没有太多经验:/ 请帮助:)

3 个答案:

答案 0 :(得分:3)

if (!boardArray.SelectMany(list => list).All(i => i == 0)) {
  ...
}

SelectManyList<List<int>>展平为一个整数序列,而All检查每个元素是否与条件匹配。

答案 1 :(得分:2)

你想检查内部列表,还是只想检查整个事物的非零值?

boardArray.Any(list => list.Any(item => item != 0));
boardArray.Where(list => list.Any(item => item != 0));

第一行将返回true / false,指示外部列表中是否有任何具有非零值的列表。另一方面,第二行过滤包含非零项目的列表。

答案 2 :(得分:0)

bool containsZero = (!boardArray.SelectMany(list => list).Any(i => i == 0))

这说明从boardarray循环中的所有项目到其中的所有项目并返回faslse如果一个不为零,那么我们反转那个错误。