C# | Indexadores multidimensionales – Part 1

Requisito previo: Indexadores en C#

El indexador multidimensional es casi similar a las arrays multidimensionales . Para la recuperación eficiente de datos basada en el contenido, se utilizan indexadores multidimensionales. Para crear un indexador multidimensional, debe pasar al menos dos parámetros en la lista de argumentos de la declaración del indexador. Para acceder a un solo elemento de un indexador multidimensional, use subíndices enteros. Cada subíndice indexa una dimensión como el primero indexa la dimensión de la fila, el segundo indexa la dimensión de la columna y así sucesivamente.

Ejemplo 1: usar el accesor get y set

// C# program to illustrate the 
// Multidimensional Indexers
using 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 Class
class 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]);
      
    }
}
Producción:

1    2    3
4    5    6
7    8    9

Ejemplo 2: sin usar el descriptor de acceso «establecer», es decir, solo usando la propiedad de solo lectura

// 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 Method
public 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();
    }
}
}
Producción:

1    2    3    
2    3    4    
3    4    5

Publicación traducida automáticamente

Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *