InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial C#
Introduccion a C#
Programacion con C#
Fundamentos de C#
Operadores
Instrucciones
Estrcuturas de control.
Definición de clases
Creación de objetos
Herencia y métodos virtuales
Polimorfismo
Ocultación de miembros
Miembros de tipo
Encapsulación
Espacios de nombres
Importación de espacios de nombres
Espacio de nombres distribuidos
Variables y tipos de datos
Tablas unidimensionales
Tablas multidimensionales
La clase System.Array
Cadenas de texto
Constantes
Orden de inicialización de variables
Métodos
Métodos externos
Constructores
Destructores
Propiedades
Indizadores
Redefinición de operadores
Delegados y eventos
La clase MulticastDelegate
Llamadas asíncronas
Implementación interna de los delegados
Eventos
Estructuras
Boxing y unboxing
Constructores de estructuras
Enumeraciones
Interfaces
Excepciones
Otras instrucciones
Atributos
Definición de nuevos atributos
Lectura de atributos en tiempo de ejecución
Atributos de compilación
Pseudoatributos
Código inseguro
Definición de punteros
Manipulación de punteros
Operadores relacionados con código inseguro
Fijación de variables apuntadas
Novedades de C# 2.0
Genéricos
Tipos parciales
Iteradores
Mejoras en la manipulación de delegados
Tipos anulables
Modificadores de visibilidad de bloques get y set
Clases estáticas
Referencias a espacios de nombres
Supresión temporal de avisos
Atributos condicionales
Incrustación de tablas en estructuras
Modificaciones en el compilador
También puedes ver ...
SubVersion y Visual Studio
Encriptación con AES Rijndael - Ejemplo
TripleDES - Un ejemplo practico en C#
Insertar una marca de agua en documentos PDF
Serialización: XmlSerializer y BinaryFormater
Handler para manipular imagenes
Conversiones de tipos personalizadas (VB y C#)
Compresión por gzip y deflate
La página Web que está abriendo contiene tanto elementos seguros como no seguros.
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008


Tablas multidimensionales

    Una tabla multidimensional o matriz es aquella cuyos elementos se encuentran organizados en una estructura de varias dimensiones. Para definirlas se utiliza una sintaxis similar a la usada para declarar tablas unidimensionales pero separando las diferentes dimensiones mediante comas (,) Por ejemplo, una tabla multidimensional de elementos de tipo int que conste de 12 elementos puede tener sus elementos distribuidos en dos dimensiones formando una estructura 3x4 similar a una matriz de la forma:

1

2

3

4

5

6

7

8

9

Esta tabla se podría declarar así:

 
int[,] tablaMultidimensional = new int[3,4] {{1,2,3,4},
{5,6,7,8},
{9,10,11,12}};

           

En realidad no es necesario indicar el número de elementos de cada dimensión de la tabla ya que pueden deducirse de los valores explícitamente indicados entre llaves, por lo que la definición anterior es similar a esta:


int[,] tablaMultidimensional = new int[,] {{1,2,3,4},
{5,6,7,8},
{9,10,11,12}};

    Incluso puede reducirse aún más la sintaxis necesaria quedando tan sólo:


int[,] tablaMultidimensional =  {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};

    Si no queremos indicar explícitamente los elementos de la tabla al declararla, podemos obviarlos pero aún así indicar el tamaño de cada dimensión de la tabla (a los elementos se les daría el valor por defecto de su tipo de dato) así:


int[,] tablaMultidimensional = new int[3,4];

    También podemos no especificar ni siquiera el número de elementos de la tabla de esta forma (tablaMultidimensional contendría ahora null):


int[,] tablaMultidimensional;

    Aunque los ejemplos de tablas multidimensionales hasta ahora mostrados son de tablas de dos dimensiones, en general también es posible crear tablas de cualquier número de dimensiones. Por ejemplo, una tabla que almacene 24 elementos de tipo int y valor 0 en una estructura tridimensional 3x4x2 se declararía así:


int[,,] tablaMultidimensional = new int[3,4,2];

    El acceso a los elementos de una tabla multidimensional es muy sencillo: sólo hay que indicar los índices de la posición que ocupe en la estructura multidimensional el elemento al que se desee acceder. Por ejemplo, para incrementar en una unidad el elemento que ocupe la posición (1,3,2) de la tabla anterior se haría (se indiza desde 0):


tablaMultidimensional[0,2,1]++;

    Nótese que tanto las tablas dentadas como las tablas multidimensionales pueden ser utilizadas tanto para representar estructuras matriciales como para, en general, representar cualquier estructura de varias dimensiones. La diferencia entre ambas son:

  • Como las tablas dentadas son tablas de tablas, cada uno de sus elementos puede ser una tabla de un tamaño diferente. Así, con las tablas dentadas podemos representar matrices en las que cada columna tenga un tamaño distinto (por el aspecto “aserrado” de este tipo de matrices es por lo que se les llama tablas dentadas), mientras que usando tablas multidimensionales sólo es posible crear matrices rectangulares o cuadradas. Las estructuras aserradas pueden simularse usando matrices multidimensionales con todas sus columnas del tamaño de la columna más grande necesaria, aunque ello implica desperdiciar mucha memoria sobre todo si los tamaños de cada columna son muy diferentes y la tabla es grande. De todos modos, las estructuras más comunes que se usan en la mayoría de aplicaciones suelen ser rectangulares o cuadradas.
  • Los tiempos que se tardan en crear y destruir tablas dentadas son superiores a los que se tardan en crear y destruir tablas multidimensionales. Esto se debe a que las primeras son tablas de tablas mientras que las segundas son una única tabla, Por ejemplo, para crear una tabla dentada [100][100] hay que crear 101 tablas (la tabla dentada más las 100 tablas que contiene), mientras que para crear una crear una tabla bidimensional [100,100] hay que crear una única tabla.
  • Las tablas dentadas no forman parte del CLS, por lo que no todos los lenguajes gestionados los tienen porqué admitir. Por ejemplo Visual Basic.NET no las admite, por lo que al usarlas en miembros públicos equivale a perder interoperabilidad  con  estos lenguajes.

Tablas mixtas

    Una tabla mixta es simplemente una tabla formada por tablas multidimensionales y dentadas combinadas entre sí de cualquier manera. Para declarar una tabla de este tipo basta con tan solo combinar las notaciones ya vistas para las multidimensionales y dentadas. Por ejemplo, para declarar una tabla de tablas multidimensionales cuyos elementos sean tablas unidimensionales de enteros se haría lo siguiente:


int[][,][] tablaMixta;

Covarianza de tablas

    La covarianza de tablas es el resultado de llevar el polimorfismo al mundo de las tablas. Es decir, es la capacidad de toda tabla de poder almacenar elementos de clases hijas de la clase de elementos que pueda almacenar. Por ejemplo, en tanto que todas clases son hijas de System.Object, la siguiente asignación es válida:


string[] tablaCadenas = {"Manolo", "Paco", "Pepe"};
object[] tablaObjetos = tablaCadenas;

    Hay que tener en cuenta que la covarianza de tablas sólo se aplica a objetos de tipos referencia y no a objetos de tipos valor Por ejemplo, la siguiente asignación no sería válida en tanto que int es un tipo por valor:


 int[] tablaEnteros = {1, 2, 3};
 object[] tablaObjetos = tablaEnteros;

     


Inicio | Tutorial C# Tablas unidimensionalesTutorial C#La clase System.Array Versión para imprimir Foros de consulta

 
metodo de lux por arm
Respuesta recibida el [21/02/2009 07:59:02]
Tengo una tarea de la U necesito hacer un programa en C#, este debe generar una matriz de (n*n), pero lo difícil es generara la combinación de números  de la matriz, debe cumplir con que no debe repartirse los números  y al combinación de estos debe ser de tal   forma que al sumar cualquiera de sus columnas o de sus filas debe dar el mismo resultado.  Podrían guiarme por favor como hacerlo.

 
sumar 2 valores de tablas por OHAG
Respuesta recibida el [11/08/2009 10:52:39]
hola tengo que sumar 2 valores de 2 tablas distintas en una tercera, pero no se como hacerlo. alguien me puede ayudar 


jtblMat3.setValueAt(jtblMat1.getValueAt(x,y)+jtblMat2.getValueAt(x,y).toString(),x,y);


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial C# Tablas unidimensionalesTutorial C#La clase System.Array Versión para imprimir

Tablas multidimensionales
Autor: José Antonio González Seco
Visitas: 18370 Fecha de publicación: 02/10/2006
José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft.




Visitas: 87 | Comentarios: 2 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 792 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 742 | Comentarios: 3 | Archivo: Articulos
Visitas: 3137 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14494 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1474 | Comentarios: 3 | Archivo: Articulos
Visitas: 691 | Comentarios: 2 | Archivo: Articulos
Visitas: 368 | Comentarios: 0 | Archivo: Articulos
Visitas: 2007 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
quiero saber en que entidad estoy afiliada a cesantias y pensiones por adriana ... [WIN 98/NT/2000/XP] 23 28/11/2009
Certificado de afiliacion Pensiones y Cesantias por VIVIANA ... [Actualidad] 1 10/03/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 122 12/01/2010
CERTIFICADO por LIZETH ... [Actualidad] 0 11/03/2010
certificado de afiliación de pensiones y cesantias por secre ... [Actualidad] 111 28/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 54 10/02/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 135 26/01/2010
pensiones por eduard ... [Visual Basic 6.0] 0 11/03/2010
Manual Visual Studio.NET por Shiko ... [Visual Basic .NET] 41 26/10/2006
cap de setmana genial por ramón ... [Java] 0 11/03/2010
cetificado de pension por RICARDDO RAFAEL SOLANO ORZCO ... [Actualidad] 0 11/03/2010
solicitud de aifiliacion a porvernir por julios ... [Actualidad] 2 11/03/2010

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
10/07/2006 Subprogramas en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Vistas    forma parte de...Tutorial SQL
22/10/2005 Indices    forma parte de...Tutorial SQL
22/10/2005 Tablas    forma parte de...Tutorial SQL
07/11/2006 Enumeraciones    forma parte de...Tutorial C#
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL
28/06/2006 Propagacion de excepciones en PL/SQL    forma parte de...Tutorial PL/SQL
28/06/2006 Procedimientos almacenados en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]