C# declaring a 2D array

how to add values to two dimensional array in c#
dynamic two dimensional array in c#
c# multidimensional array foreach
c# multidimensional array length
c# multidimensional array get row
print 2d array c#
c# multidimensional list
c# loop through multidimensional array

I am trying to setup a 2d array in C# to act as a maze to move a character around, I am having a few issues initialising the array, I am trying to do the below

but the InitialiseMaze method is saying the maze is not declared

Can anyone advise

thanks

simon

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GameMan
{
    public class Maze
    {
       #region Variables
       static int[,] maze;

    #endregion
    #region Constructors/Destructors
    public Maze()
    {
        InitaliseMaze();
    }
    ~Maze()
    {
    }
    #endregion

    #region Methods
    public void InitaliseMaze()
    {

         maze = {
                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},    
                          {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},     
                          {0, 0, 3, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 3, 0, 0},     
                          {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},    
                          {0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0},    
                          {0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0},     
                          {0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0},    
                          {0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 4, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0},     
                          {0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0},     
                          {1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1},
                          {0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0},
                          {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},
                          {0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0 ,0, 2, 0, 0},
                          {0, 0, 3, 2, 0, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 0, 2, 3, 0, 0},
                          {0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0},
                          {0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0},
                          {0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0},
                          {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},
                          {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
                      };
    }
    #endregion
}

}

C# Multidimensional Array, Let's see a simple example of multidimensional array in C# which declares, initializes and traverse two dimensional array. using System; public class MultiArrayExample. { public static void Main(string[] args) { int[,] arr=new int[3,3];//declaration of 2D array. arr[0,1]=10;//initialization. arr[1,2]=20; Multidimensional Arrays (C# Programming Guide) 07/20/2015; 2 minutes to read +4; In this article. Arrays can have more than one dimension. For example, the following declaration creates a two-dimensional array of four rows and two columns. int[,] array = new int[4, 2]; The following declaration creates an array of three dimensions, 4, 2, and 3.

Just to make Jon's post a bit clearer:

maze = new int[,]{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},    
{0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},     
{0, 0, 3, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 3, 0, 0},     
{0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},    
{0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0},    
{0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0},     
{0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0},    
{0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 4, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0},     
{0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0},     
{1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0},
{0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},
{0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0 ,0, 2, 0, 0},
{0, 0, 3, 2, 0, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 0, 2, 3, 0, 0},
{0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0},
{0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0},
{0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0},
{0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};

Boy, that was a big maze array...

C# - Multidimensional Arrays, How do I get the length of an array in C#? C# allows multidimensional arrays. Multi-dimensional arrays are also called rectangular array. You can declare a 2-dimensional array of strings as − string [,] names; or, a 3-dimensional array of int variables as − int [ , , ] m; Two-Dimensional Arrays. The simplest form of the multidimensional array is the 2-dimensional array.

Ok, well here is some extract from the msdn :

 int[,] myArray = {{1,2}, {3,4}, {5,6}, {7,8}};

extracted from MSDN multidimensional arrays

you should also read up concerning Destructors, finalizers etc ... , I bet your coming from C++ ? Differences between the 2 languages arent always obvious :).

How to find the length of an Array in C#, How do you pass an array to a function in C#? Introduction to 2D Arrays in C# Two-dimensional arrays are a collection of homogeneous elements that span over multiple rows and columns, assuming the form of a matrix. Below is an example of a 2D array which has m rows and n columns, thus creating a matrix of m x n configuration. [ a1, a2, a3, a4,, an

You need to declare maze

 numbers = new int[X,Y]; where X and Y are how big it is

C# 2D Array Examples, C# allows multidimensional arrays. Multi-dimensional arrays are also called rectangular array. You can declare a 2-dimensional array of strings as − string [  All arrays consist of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element. Declaring Arrays. To declare an array in C#, you can use the following syntax − datatype[] arrayName; where, datatype is used to specify the type of elements in the array. [ ] specifies the rank of the array. The rank specifies the size of the array.

Two-Dimensional Arrays

The simplest form of the multidimensional array is the 2-dimensional array. A 2-dimensional array is a list of one-dimensional arrays.

A 2-dimensional array can be thought of as a table, which has x number of rows and y number of columns. Following is a 2-dimensional array, which contains 3 rows and 4 columns −

Two Dimensional Arrays in C#

Thus, every element in the array a is identified by an element name of the form a[ i , j ], where a is the name of the array, and i and j are the subscripts that uniquely identify each element in array a.

Initializing Two-Dimensional Arrays

int [,] a = new int [3,4] {

   {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */

   {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */

   {8, 9, 10, 11}   /*  initializers for row indexed by 2 */

};

Explain above code:

new int [**3**,4] **3** denoting to rows like how may object in array 

eg:

{0, 1, 2, 3} ,  
{4, 5, 6, 7} ,  
{8, 9, 10, 11}


new int [3,**4**] **4** denoting to columns like total value in object (4 columns)

eg:   


   {0, 1, 2, 3}

Let us check the program to handle a two dimensional array

 using System;
    namespace ArrayApplication {
       class MyArray {
          static void Main(string[] args) {
             /* an array with 5 rows and 2 columns*/
             int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
             int i, j;

             /* output each array element's value */
             for (i = 0; i < 5; i++) {

                for (j = 0; j < 2; j++) {
                   Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
                }
             }
             Console.ReadKey();
          }
       }
    }

Output:  

a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8

C# - Multidimensional Arrays, Part A: Here we initialize the 2D array with an initializer expression. Each element in this array is a string. Part B: We use the indexing syntax to access elements. Using 1 and 2D Arrays in Unity3D / C# Declaration In order to declare an array, you simply state the data type you want followed by square brackets, and finally the identifier you want this array to go by.

C# declaring a 2D array, The multidimensional array can be declared by adding commas in the square brackets. For example, [,] declares two-dimensional array, [, ,] declares three-dimensional array, [, , ,] declares four-dimensional array, and so on. So, in a multidimensional array, no of commas = No of Dimensions - 1. In C#, there are different ways to create an array: // Create an array of four elements, and add values later string[] cars = new string[4]; // Create an array of four elements and add values right away string[] cars = new string[4] {"Volvo", "BMW", "Ford", "Mazda"}; // Create an array of four elements without specifying the size string[] cars = new string[] {"Volvo", "BMW", "Ford", "Mazda"}; // Create an array of four elements, omitting the new keyword, and without specifying the size

2d Array in C# with real-time Examples, You can't initialize an array like that other than in a variable declaration. However​, the change is simple: maze = new int[,] { // As before };. As asides: It looks like  Arrays can store any element type you specify, such as the following example that declares an array of strings: string[] stringArray = new string[6]; Array Initialization. You can initialize the elements of an array when you declare the array. The length specifier isn't needed because it's inferred by the number of elements in the

Lesson 11 - Multidimensional arrays in C# .NET, In this article, I am going to discuss the 2d Array in C# with Examples. Assigning values to two-dimensional array in C# at the time of declaration: namespace  An array is usable only after you make C# declare array with a name and an element type. The second pair of square brackets [ ] indicates the size of the array. Note: the index of variables in an array begins at 0. type [ ] arrayName []

Comments
  • I'm almost positive there should be a 'new' there during initialization. :)
  • why not put this in a file and load it from there?
  • Not related to question, but you'd have easier time designing maze if you'd put it in string like " #### " and use # for wall and space for empty spaces. Other characters could be other things one encounters in a maze. Then in initialization simply split the string into the int values and store as they're now.
  • @linkerro - If he can' even declare an array he certainly won't be able to read a file. Besides an array will be faster.
  • As Jon Skeet stated, finalizers are rarely required in C#. Never used them myself.
  • Nope, that's inferred from the values. Just new int[,] { ... } is fine.