检查2D-Array中的所有元素是否具有相同的值

时间:2012-11-15 01:04:11

标签: c# .net c#-4.0

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

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

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

但如果我有一个2D数组,我怎么能检查所有元素是否等于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语句中添加什么?

1 个答案:

答案 0 :(得分:3)

2D数组是enumerable type(但它实现了非泛型IEnumerable)。它的枚举器枚举了2D数组中的所有项目。所以,只需要做的事情 - 将其项目投放到int(从而检索IEnumerable<int>)并应用All

t2D.Cast<int>().All(x => x == 3)