IT-Academy Logo
Sign Up Login Help
Home - Programmieren - .Net - C# - Arrays in C#



Arrays in C#

Array's sind in C# etwas anders zu handhaben als in C. Da sich alles auf dem Heap abspielt, gibt es einige neue Möglichkeiten. Eine kurze Einführung.


Autor: Patrick Bucher (paedubucher)
Datum: 27-10-2004, 22:13:34
Referenzen: Grundlagen und Profiwissen zu Visual C#
Schwierigkeit: Fortgeschrittene
Ansichten: 27796x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Deklaration

Anders als in allen von C abgeleiteten Sprachen werden in C# die Eckklammernnach dem Datentyp geschrieben:

C Schreibweise:
Datentyp Variablenname[];
int meinArray[15];
C# Schreibweise:
Datentyp[] Variablenname;
int[15] meinArray;
Instantiierung

Nun zeigt das C# Array noch ins Leere. Auch hier muss man eine neue Instanz (wie bei den Objekten) erstellen:
Datentyp[] Variablenname = new Datentyp[];
int[] meinArray = new int[15];
Initialisierung

Ein Array kann in C# auch gleich bei der Instantiierung initialisiert werden. Dazu hängt man einfach in geschweiften Klammern eine Wertauflistung an:
Datentyp[] Variablenname = new Datentyp[]{wert1, ..., wertn};
int[] meinArray = new int[15]{1, 2, 3};
Es gibt auch eine Kurzform der ganzen drei Schritte (deklarieren, instantiieren und initialisieren):
Datentyp[] Variablenname = {wert1, ..., wertn};
Zugriff auf Arrayelemente

Zugriff auf einzelne Elemente

Der Arrayzugriff erfolgt in C# wie in C:
Array[index] = Wert;
meinArray[5] = (int)16;
Auch in C# beginnt jedes Array mit dem Index 0. Der höchstmögliche Index ist die Zahl, die man bei der Deklarierung in die Eckklammern schreibt minus 1.

Obergrenze feststellen

Der untere Index eines C# Arrays ist immer 0. Den oberen findet man mit der "Length"-Eigenschaft des Arrays heraus.
int[] meinArray = new int[5];
int x = (int)meinArray.Length;
x wird nun den Wert 5 besitzen.

Zugriff mittels Schleifen

Der Arrayzugriff mittels Schleife funktioniert genau gleich wie der Zugriff auf einzelne Elemente, nur, dass der Index bei jedem Durchlauf neu berechnet wird.

Mehrdimensionale Arrays

Syntax

Ein C# Array kann mehrere Dimensionen haben. Um ein mehrdimensionales Array zu deklarieren, werden in C# bei der Deklarierung Kommas in die Eckklammern gesetzt.
int[ , ] meinArray = newint[18, 15];
Pro Dimension über eins, muss ein Komma in den Eckklammern stehen. Bei einem zweidimensionalen Array stellt die erste Zahl die Anzahl der Spalten dar, die zweite Zahl steht für die Zeilen (oder auch gerade umgekehrt).

Zugriff

Für den Zugriff eines mehrdimensionales Array muss man zwei Indexe angeben.
meinArray[8, 3] = (int)15;
Dimensionsgrenze ermitteln

Die "GetLength"-Methode des Arrays gibt die Obergrenze für eine beliebige Dimension zurück. Welche Dimension man prüfen will, übergibt man der Methode als Argument.
meinArray.GetLength(0); /*gibt die Obergrenze der ersten Dimension zurück*/
Initialisierung bei der Instantiierung

Auch ein mehrdimensionales Array kann bei der Instantiierung gleich deklariert werden. Dazu werden die geschweiften Klammern verschachtelt.
int[, ] Zahlen = {{5, 6}, {7, 12}};
Zuweisen von Arrays

Ein Array stellt in C# eine Referenz dar. Bei der Zuweisung eines Arrays auf ein bisheriges, wird dieses nicht kopiert, es zeigen nun einfach beide Arrays auf die gleichen Werte.

Zum Kopieren eines Arrays steht die "Clone"-Methode zur Verfügung.

Array löschen

Ein Array kann nicht direkt gelöscht werden, es kann nur mit null referenziert werden.
meinArray = null;
Das Array zeigt nun ins leere. Der Garbage-Collector von .net sorgt nun dafür, dass die nicht referenzierten Speicherstellen wieder freigegeben werden.

Array-Dimension ändern

In C# stellt jedes Array einen Zeiger auf bestimmte Speicherzellen zu. Um den Aufbau eines Arrays zu ändern, kann man es einfach auf ein neues Array referenzieren.


Bronko84
Rookie
Beitrag vom:
16-08-2011, 14:00:44

Super Artikel

Hallo,

der Artikel gefällt mir super.

Das Lernen mit Videos finde ich auch spannend.

Das kann man unter folgendem Link machen.

http://www.experdios.de/video/c-sharp-arrays

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0