The multidimensional indexers is almost similar to multidimensional arrays. For the efficient content-based retrieval of data, multidimensional indexers are used. To create multi-dimensional indexer you have to pass at least two parameters in the argument list of indexer declaration. To access a single element of a multi-dimensional indexer, use integer subscripts. Each subscript indexes a dimension like the first indexes the row dimension, the second indexes the column dimension and so on.
Example 1: Using get and set accessor
// C# program to illustrate the // Multidimensional Indexers using System; class TAS { // reference to underlying 2D array int[, ] data = new int[5, 5]; // declaring Multidimensional Indexer public int this[int index1, int index2] { // get accessor get { // it returns the values which // read the indexes return data[index1, index2]; } // set accessor set { // write the values in 'data' // using value keyword data[index1, index2] = value; } } } // Driver Class class Tech { // Main Method public static void Main(String []args) { // creating the instance of // Class TAS as "index" TAS index = new TAS(); // assign the values accordingly to // the indexes of the array // 1st row index[0, 0] = 1; index[0, 1] = 2; index[0, 2] = 3; // 2nd row index[1, 0] = 4; index[1, 1] = 5; index[1, 2] = 6; // 3rd row index[2, 0] = 7; index[2, 1] = 8; index[2, 2] = 9; // displaying the values Console.WriteLine("{0}\t{1}\t{2}\n{3}\t{4}\t{5}\n{6}\t{7}\t{8}", index[0, 0], index[0, 1], index[0, 2], index[1, 0], index[1, 1], index[1, 2], index[2, 0], index[2, 1], index[2, 2]); } }
Output:
1 2 3 4 5 6 7 8 9
Example 2: Without using the “set” accessor i.e only using Read-Only Property
// C# program to illustrate the Multidimensional // Indexer without using set accessor using System; class TAS { // default constructor public TAS() {} // Multidimensional Indexer public int this[int i1, int i2] { // get accessor get { // read only properties return (i1 + i2); } // No set accessor used } // Main Method public static void Main(String []args) { // creating object of class // "TAS" as "index" TAS index = new TAS(); // displaying the values for (int i = 0; i <= 2; i++) { for (int j = 1; j <= 3; j++) { Console.Write(index[i, j] + "\t"); } Console.WriteLine(); } } }
Output:
1 2 3 2 3 4 3 4 5
Recent Comments