Arrays in C#

Arrays sind Felder, welche eine bestimmte, vorher definierte Anzahl von Variablen erzeugen und speichern.

Es sollen z.B. Messwerte einer Woche (ein Messwert pro Tag) aufgezeichnet werden. Für jeden Messwert wird also eine Variable benötigt, die jeden Messwert speichert.

Natürlich könnten wir für jeden Messwert eine Variable (m0,m1,m2,m3,m4,m5,m6) erzeugen und im Programm verarbeiten. Dies ist aber sehr umständlich und würden wir Messwerte über ein Jahr (365) benötigen, dann kommen wir mit dieser Technik nicht weiter.

Statt der vielen Variablen m0,m1,m2,m3.... verwenden wir ein Feld (Array) welches 7 Variablen besitzt.

Im Feld[0] ist der Wert 5 gespeichert
Im Feld[1] ist der Wert 15 gespeichert
Im Feld[2] ist der Wert 12 gespeichert
.....
Im Feld[6] ist der Wert 11 gespeichert

 

Deklaration:

Datentyp[] Feldname;

 

Beispiel für float

float[] Feldname;

Erzeugt ein Feld vom Datentyp float mit dem Namen Feldname

Angelegt wird das Feld durch das Schlüsselwort new

Datentyp[] Feldname = new Datentyp[i];  ( i steht für die Anzahl der benötigten Variablen )

 

Praxisbeispiel:

float[] messwert = new float[7];

 

 

Programmbeispiel:

Hier ein Programm, welches 7 Messwerte einließt, die Summe berechnet und die eingelesenen Messwerte ausgibt.

namespace array1
{
    class Program
    {
        static void Main(string[] args)
        {
            float summe=0;
            float[] messwert = new float[7]; //reserviert 7 Speicherplätze

            for (int i = 0; i <= 6; i++)
            {
                Console.WriteLine("Bitte den {0} Messwert eingeben!", i + 1);
                messwert[i] = Convert.ToSingle(Console.ReadLine()); //liest Messwert i ein

                summe = summe + messwert[i];
            }
            Console.WriteLine("Die Summe ist {0}", summe);

            Console.WriteLine("Eingegeben wurden: ");

            for (int i = 0; i <= 6; i++)
            {
                Console.WriteLine("{0}", messwert[i]); //gibt die Messwerte aus
            }
            Console.ReadLine();
        }
    }
}

 

Um Werte eines Arrays auszulesen gibt es eine vereinfachte Form, dies mit einer Leseschleife (reiner Lesezugriff) mit

foreach (float j in messwert)

durchzuführen.

 

Werte mit Mittelwert vergleichen und ausgeben 

Wir erweitern unser Programm mit einer foreach-Schleife.
Weiters sollen nur jene Messwerte ausgegeben werden, die größer als der Mittelwert sind:

 

namespace array2
{
    class Program
    {
        static void Main(string[] args)
        {
            float summe = 0, mittelwert;
            float[] messwert = new float[7]; //reserviert 7 Speicherplätze

            for (int i = 0; i <= 6; i++)
            {
                Console.WriteLine("Bitte den {0} Messwert eingeben!", i + 1);
                messwert[i] = Convert.ToSingle(Console.ReadLine()); //liest Messwert i ein

                summe = summe + messwert[i];
            }
            mittelwert = summe / 7;
            Console.WriteLine("Die Summe ist {0}", summe);
            Console.WriteLine("Mittelwert = {0}",mittelwert);

            foreach (float j in messwert) //Leseschleife für die Ausgabe von i Messwerten

            {
                if (j > mittelwert) //Prüft, ob j > mittelwert ist
                    Console.WriteLine("{0}",j);
            }
            Console.ReadLine();
        }
    }
}