Grundlagen Teil 2 - Datenfelder

In diesem Abschnitt werden wir uns mit Datenfeldern von Variablen beschäftigen, Zweck von diesen ist es zum Beispiel mehrere Vornamen in einer Variable zusammenzufassen. Anders ausgedrückt kann man sich solch eine Variable, als Zusammenfassung mehrere Variablen vorstellen.
Dies hört sich vielleicht im ersten Moment kompliziert an, ist es allerdings nicht.
Ein Datenfeld kann man sich wie eine Tabelle mit einer Spalte vorstellen, jedoch mit einer begrenzten Anzahl an Zeilen.

Zu beginn erwähnten wir, dass wir uns mit Datenfeldern von Variablen beschäftigen, sind allerdings nicht darauf eingegangen um was es sich bei dieser Variable handelt. Ganz einfach ausgedrückt, kann es jeder beliebige Variablentyp sein, jedoch einmal festgelegt hat das ganze Datenfeld diesen Variablentypen. Daher kann dadurch jeder Variablentyp als Datenfeld mit einer bestimmten Anzahl an Zeilen definiert werden.

Nachdem wir dies Theoretisch betrachtet haben, kommen wir zur praktischen Erklärung.
Wieder erfolgt zuerst ein Programmcodeauszug und danach die Erklärung im Detail.
Als Programmcode, würde dies anhand eines string Datenfelds mit zwei Zeilen folgendermaßen aussehen:

string[] variablenname;
variablennamen = new string[2];

string[] variablenname = new string[2];

Bei diesem Ausschnitt gibt es einiges neues zu erklären.
Um die Ähnlichkeit einer normalen string Variable zu verdeutlichen, erfolgten diesmal zwei Beispiele, welche die gleiche Bedeutung besitzen.
Wenn man eine Variable eines beliebigen Types als Datenfeld erstellen will, ist es vonnöten zuerst nach dem Namen des Typen zwei eckige Klammern zu notieren. Dies sagt nichts anders aus, als dass es sich bei der folgenden Variable mit dem Namen variablenname, um ein Datenfeld vom Typ string handelt. Um hier wieder das Beispiel der Tabelle zu bringen, heißt hier die Spalte gewissermaßen variablenname, jedoch wurde noch nicht festgelegt, um wie viel Felder (Zeilen) es sich handelt. Dies ist vonnöten, da ansonsten unbekannt ist, wie viele Felder dieses Datenfeld besitzt.
Dies funktioniert mit new string[Anzahl Zeilen], dies erklärt sich in das Deutsche übersetzt von selbst.
Nämlich: Die Variable variablenname ist ein neues (new) string Datenfeld mit 2 Zeilen (string[2]).
Dieses Verfahren funktioniert identisch mit int und alle zukünftig vorkommenden Variablentypen.

Befüllen von Datenfeldern

Nun wissen wir wie ein Datenfeld angelegt wird, als nächstes betrachten wir wie ein solches Datenfeld befüllt werden kann.
Als Beispiel verwenden wir wieder ein string Datenfeld.

Zuerst betrachten wir, wie man einem solchen string Datenfeld, beim Definieren mit Daten befüllt, hierzu zuerst zwei Programmcodeauszüge:

string[] Datenfeld = new string[2]{"feld1","feld2"};

string[] Datenfeld = new string[]{"feld1","feld2"};

Beide Programmcodezeilen ergeben das gleiche Ergebnis, in der ersten Zeile haben wir angegeben, dass unser Datenfeld zwei Felder hat und befüllen diesen danach mit {"feld1","feld2"}. Wenn unser Datenfeld mehr als zwei Felder hätte, könnte man mit , "weiteren text" einfach den Rest befüllen.
Man muss allerdings bei dieser Art des Anleges eines Datenfeldes darauf achten, dass die Zahl zwischen den eckigen Klammern identisch, der Anzahl der Elemente zwischen den geschwungenen Klammern ist.
Hingegen dazu, wird beim zweiten Programmcodeauszug, durch die Anzahl der Elemente zwischen den geschwungen Klammern angegeben, wieviel Zeilen das Datenfeld besitzt.
Zusammengefasst erfolgt das Definieren von Werten, durch geschwungene Klammer auf ({) Elemente mit Beistrich getrennt (,) geschwungene Klammer zu (}).

Verwenden von Datenfeldern

Das Befüllen beim Definieren eines Datenfeldes ist zwar eine schöne Sache, jedoch bringt es einem nichts, wenn sie nicht später wieder ausgelesen / modifiziert werden können.
Natürlich gibt es dafür eine einfache Lösung.

Einzelnen Zeilen einer Datenfeldvariable, lassen sich durch eckige Klammern und einer Angabe der gewünschten Zeile ansprechen.
Hier gibt es eine Besonderheit, auf welche es besonders zu achten gilt. Dies ist die Angabe der Zeile zwischen den eckigen Klammern (Index). Denn der Index zwischen den eckigen Klammern beginnt immer bei 0. Das bedeutet, wenn unser Datenfeld zwei Zeilen hat, gibt des den Index 0 und 1.

Um dies besser zu veranschaulichen eine kleine Tabelle:
Index Element von 1 beginnend Anzahl Elemente
0 1 5
1 2 5
2 3 5
3 4 5
4 5 5

Ausgeben des zweiten Feldes eines string Datenfeldes mit zwei Feldern funktioniert folgendermaßen.

string[] Datenfeld = new string[]{"feld1","feld2"};
Console.WriteLine(Datenfeld[1]);

Ändern des Inhalts des zweiten Feldes funktioniert identisch, dem einer normalen string Variable, hier ist wieder der Index vonnöten.
Als Programmcode sieht dies folgendermaßen aus:

string[] Datenfeld = new string[]{"feld1","feld2"};
Datenfeld[1]="anderer Text";

Übungsbeispiel

Jetzt gilt es ein Programm zu schreiben, welches das eben behandelte praktisch anwendet.

Angabe

Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.

Lösung:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  string eingabe1 = Console.ReadLine();
                  string eingabe2 = Console.ReadLine();
                  string[] Datenfeld = new string[]{eingabe1,eingabe2};
                  
                  Console.WriteLine(Datenfeld[0]);
                  Console.WriteLine(Datenfeld[1]);
                  Console.ReadLine();
            }
      }
}