1

1D配列がある場合は、以下を使用して、すべての要素が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ステートメントには何を入れる必要がありますか?

4

1 に答える 1

3

2D-arrayは列挙可能な型です(ただし、非ジェネリックを実装しますIEnumerable)。そして、その列挙子は2D配列のすべてのアイテムを列挙します。だから、あなたがする必要があるのは-そのアイテムをキャストしてint(したがって取得してIEnumerable<int>)適用することだけですAll

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