1

如果我们有一个一维数组,我们可以使用以下命令来查看是否所有元素都等于 3:

int[] t = Enumerable.Repeat(3, 10).ToArray();

if (t.All(item => item.Equals(3))) MessageBox.Show("all elements equals to 3");

但是如果我有一个二维数组,我如何检查所有元素是否等于 3(没有任何 for-Loops):

    int[,] t2D= new int[,] { { 3, 3 }, { 3, 3 }, { 3, 3 }, { 3, 3 } };

    if( CHECK IF ALL ELEMENTS IN **t2D** are equal to 3) 

               {
                MessageBox.Show("all elements equals to 3");
               }

我应该在 If 语句中输入什么?

4

1 回答 1

3

2D-array 是一种可枚举类型(但它实现了非泛型IEnumerable)。它的枚举器枚举了二维数组中的所有项目。因此,您只需要做一件事 - 将其项目转换为int(从而检索IEnumerable<int>)并应用All

t2D.Cast<int>().All(x => x == 3)
于 2012-11-15T01:12:04.947 回答