Arrays in C#

Arrays sind indizierter Mehrfach-Platzhalter gleichen Datentyps. Ein Array ,unter C-Programmierern oft auch Vektor genannt, hat einen deklarierten Namen wie eine Variable und dazu einen eckigen Klammerbereich []. Die Klammern dienen der Indizierung.

Arrays werden dann nützlich, wenn ein Wertetyp für einen definierten Zweck mehrfach benötigt wird. Stellen Sie sich vor, Sie müssten für jeden Tag den Fortschritt des Stromzählers speichern und nach 7 Tagen einen Durchschnitt aus den Tagesverbräuchen bilden.
Sicherlich ließen sich dafür 7 Variablen, z.B. zstand_montag, zstand_dienstag, zstand_mittwoch, zstand_donnerstag, zstand_freitag, zstand_samstag und zstand_sonntag, anlegen. Dies ist jedoch aufwändig, insbesondere, wenn Sie die verschiedene Berechnungen mit diesen Variablen durchführen müssen.

Hier ein Lösungsbeispiel mit einem Array:

[csharp] float[] zstand = new float[7];

zstand[0] = 4.4 F;
zstand[1] = 8.1 F;
zstand[2] = 3.3 F;
zstand[3] = 1.2 F;
zstand[4] = 6.3 F;
zstand[5] = 6.2 F;
zstand[6] = 5.2 F;

float wochendurchschnitt = this.Durchschnitt_Woche(zstand);
float arbeitswochendurschnitt = this.Durchschnitt_Arbeitswoche(zstand);

Console.WriteLine(“Durschnittsverbrauch in der ganzen Woche: ” + wochendurchschnitt.ToString());
Console.WriteLine(“Durschnittsverbrauch der Werktage: ” + arbeitswochendurschnitt.ToString());
[/csharp]

Mit einer Methode, die eine For-Schleife nutzt (und sich dabei nach der Größe des Arrays richtet) , kann der Wochen-Durchschnitt berechnet werden.

[csharp] private float Durchschnitt_Woche(float [] zstand) // 7 Tage
{
float zstand_gesamt = 0;

for (int i = 0; i <   zstand.Length; i++) { zstand_gesamt = zstand_gesamt + zstand[i]; } return zstand_gesamt / zstand.Length; } [/csharp] Das "Gleiche in grün" ist dann die Berechnung des Durchschnitts bezüglich einer Arbeitswochen (hier nur Werktage). Es musste nur die For-Schleife und der Divisor angepasst werden.

[csharp] private float Durchschnitt_Arbeitswoche(float [] zstand) // Werktage
{
float zstand_gesamt = 0;

for (int i = 0; i <   5; i++) { zstand_gesamt = zstand_gesamt + zstand[i]; } return zstand_gesamt / 5; } [/csharp] Ausgabe:

Durschnittsverbrauch in der ganzen Woche: 4,957143
Durschnittsverbrauch der Werktage: 4,66

Allgemeine Hinweise zu Arrays

Augenmerk ist hier auf den Array-Index gerichtet. Die Array-Größe (eigentlich die Index-Anzahl) wird in C# mit der Klassenmethode Length() angesprochen.

Die Indexierung beginnt wie in C bei Null. Das letzte Feld des Arrays wird demnach so angesprochen:

[csharp]

zstand[zstand.Length-1] [/csharp]

Arrays sind ohne Weiteres nicht flexibel in ihrer Größe, das heißt, die Anzahl an benötigten Indizies muss im Vorfeld bekannt sein.

[csharp] int[] numbers = new int[];

numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
numbers[5] = 6;
numbers[6] = 7;
numbers[7] = 8;
numbers[8] = 9;
numbers[9] = 10;

for (int i = 0; i <   numbers.Length; i++) { Console.WriteLine("Array-Index: " + i + ", Array-Inhalt: " + numbers[i]); } [/csharp]