W C# występują tablice wzorowane na tych jakie znamy z
Javy,
ale jest też specjalny typ wielowymiarowych
tablic — tablice prostokątne, bliższe
tablicom z C czy Fortranu. Omówimy pokrótce te typy na przykładzie
poniższego programu:
      1.  using System;
      2.  
      3.  class Tablice {
      4.      public static void Main() {
      5.          string[]  names =
      6.              new string[] { "Ola", "Ala", "Ula" };
      7.          int[,]   wzrwag = new int[3,2];
      8.          int[][] stopnie = new int[3][];
      9.  
     10.          for (int i =0; i < 3; i++) {
     11.              wzrwag[i,0] = 168 + i;
     12.              wzrwag[i,1] =  68 - 2*i;
     13.          }
     14.  
     15.          stopnie[0] = new int[] {4,4,4,5};
     16.          stopnie[1] = new int[] {4,5};
     17.          stopnie[2] = new int[] {3,4,3};
     18.  
     19.          Console.WriteLine("Imie Wzrost Waga Stopnie\n"+
     20.                            "------------------------");
     21.          for (int i = 0; i < names.Length; i++) {
     22.              Console.Write(names[i] + "  " + wzrwag[i,0] +
     23.                      "    " + wzrwag[i,1] + "  ");
     24.              for (int j = 0; j < stopnie[i].Length; j++)
     25.                  Console.Write(" " +  stopnie[i][j]);
     26.              Console.WriteLine();
     27.          }
     28.      }
     29.  }
       string[]  names = new string[] { "Ola", "Ala", "Ula" };
ma postać
tablicy z Javy: jest to trzyelementowa tablica odnośników
do napisów (zainicjowana odnośnikami do konkretnych napisów
podanych w postaci literałów).
W linii 8 deklarujemy tablicę dwuwymiarową liczb,
stopnie,
int[][] stopnie = new int[3][];która, jak w Javie, jest w zasadzie jednowymiarową tablicą o elementach stopnie[0], stopnie[1], stopnie[2], z których każdy jest odnośnikiem do tablicy liczb. Zaraz po utworzeniu w linii 8 ta jednowymiarowa tablica inicjowana jest wartościami NULL. W liniach 15-17 programu
       stopnie[0] = new int[] {4,4,4,5};
       stopnie[1] = new int[] {4,5};
       stopnie[2] = new int[] {3,4,3};
tworzymy tablice liczb (różnych rozmiarów) i odnośniki
do nich wpisujemy do elementów
stopnie[0],
stopnie[1],
stopnie[2]
 tablicy
stopnie.
Zatem do poszczególnych ocen zapisanych w tablicy będziemy
się odnosić poprzez podanie dwóch indeksów, każdy w osobnej
parze nawiasów kwadratowych. Widać to na przykład w linii 25.
Tego rodzaju tablica, jak w Javie, może mieć wiersze
różnej długości (czyli być „postrzępiona”,
ang. jagged array).
Nie ma też żadnej gwarancji, że dane
odpowiadające poszczególnym wierszom będą ułożone
w pamięci w jakiś określony sposób — każdy wiersz może być
alokowany osobno.
Charakterystyczna dla C# jest konstrukcja użyta w linii 7 programu
int[,] wzrwag = new int[3,2];Deklarujemy tu liczbową tablicę prostokątną o wymiarach 3×2. Jest ona odpowiednikiem tablic z Fortranu czy C: musi być ściśle prostokątna, tzn. długości wierszy muszą być równe. Cała tablica jest alokowana w spójnym obszarze pamięci w dobrze określonym porządku (wierszami, jak w C, a nie kolumnami, jak w Fortranie). Znacznie zwiększa to efektywność przetwarzania danych zawartych w tablicach w stosunku do Javy.
Widać z naszego przykładu, że takie tablice oznaczane są w specjalny sposób: indeksy umieszcza się w jednej parze nawiasów kwadratowych, oddzielone przecinkami (patrz linie 7, 11, 12, 22, i 23 programu).
Wynik programu to:
    Imie Wzrost Waga Stopnie
    ------------------------
    Ola  168    68   4 4 4 5
    Ala  169    66   4 5
    Ula  170    64   3 4 3
Jak widzimy, język C# daje nam dużą swobodę i elastyczność
w posługiwaniu się tablicami — wspierane są zarówno tablice
"w stylu Javy” jak i te znane z C czy Fortranu.
T.R. Werner, 21 lutego 2016; 20:17