C# | Multidimensional Indexers

21 Dec, 2021
The multi-dimensional indexer 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 Indexersusing System;    class GFG {          // 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 Classclass Geeks {                // Main Method    public static void Main(String []args)    {                  // creating the instance of         // Class GFG as "index"        GFG index = new GFG();                    // 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]);          }}
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 GFG {          // default constructor    public GFG() {}       // Multidimensional Indexer    public int this[int i1, int i2]    {                  // get accessor        get         {                          // read only properties            return (i1 + i2);        }                  // No set accessor used    }  // Main Methodpublic static void Main(String []args){          // creating object of class    // "GFG" as "index"    GFG index = new GFG();          // 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();    }}}
1    2    3    
2    3    4    
3    4    5

surindertarika1234
CSharp-Indexers & Properties
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.