Übung: Erste Schritte mit den Grundlagen zu Arrays
- 19 Minuten
Mithilfe von Arrays können Sie mehrere Werte desselben Typs in einer einzelnen Variablen speichern. Die in einem Array gespeicherten Werte stehen in der Regel in Beziehung zueinander. So kann z. B. eine Liste mit Namen von Schüler*innen in einem Zeichenfolgenarray namens students gespeichert werden.
Bei Ihrer Aufgabe in der Sicherheitsabteilung geht es darum, ein Muster für betrügerische Bestellungen zu finden. Ihr Code soll frühere Kundenbestellungen überprüfen und dabei Marker identifizieren, die mit betrügerischen Bestellungen in Zusammenhang stehen. Ihr Unternehmen hofft, mithilfe dieser Marker mögliche betrügerische Bestellungen in Zukunft zu erkennen, bevor sie verarbeitet werden. Da Sie nicht immer im Voraus wissen, wie viele Bestellungen Sie überprüfen müssen, können Sie keine individuellen Variablen für die Bestell-IDs erstellen. Wie erstellen Sie also eine Datenstruktur, die mehrere verwandte Werte enthält?
In dieser Übung speichern und analysieren Sie eine Auflistung von Bestell-IDs mithilfe von Arrays.
Was ist ein Array?
Ein Array ist eine Auflistung von individuellen Datenelementen, auf die über einen einzelnen Variablennamen zugegriffen werden kann. Sie verwenden einen nullbasierten numerischen Index, um auf die einzelnen Elemente eines Arrays zuzugreifen. Mithilfe von Arrays können Sie eine Auflistung von Datenwerten, die einen gemeinsamen Zweck oder gemeinsame Merkmale haben, zur einfacheren Verarbeitung unter einem einzelnen Variablennamen erstellen.
Deklarieren von Arrays und Zugreifen auf Arrayelemente
Ein Array ist ein spezieller Variablentyp, der mehrere Werte desselben Datentyps enthalten kann. Die Deklarationssyntax unterscheidet sich ein wenig für ein Array, da Sie sowohl den Datentyp als auch die Größe des Arrays angeben müssen.
Vorbereiten Ihrer Programmierumgebung
Dieses Modul enthält Übungen zum Erstellen und Ausführen von Beispielcode. Es wird empfohlen, diese Aktivitäten mit Visual Studio Code als Entwicklungsumgebung durchzuführen. Die Verwendung von Visual Studio Code für diese Aktivitäten vereinfacht das Schreiben und Ausführen von Code in einer Entwicklerumgebung, die von Expert*innen weltweit verwendet wird.
Öffnen Sie Visual Studio Code.
Sie können das Windows-Startmenü (oder eine entsprechende Ressource für ein anderes Betriebssystem) verwenden, um Visual Studio Code zu öffnen.
Klicken Sie im Visual Studio Code-Menü Datei auf Ordner öffnen.
Navigieren Sie im Dialogfeld Ordner öffnen zum Windows-Ordner „Desktop“.
Wenn Sie Codeprojekte in der Regel in einem anderen Ordner speichern, können Sie stattdessen auch diesen verwenden. Für diese Übung sollten Sie einen Speicherort haben, den Sie leicht finden und sich gut merken können.
Klicken Sie im Dialogfeld Ordner öffnen auf Ordner auswählen.
Wenn ein Sicherheitsdialogfeld angezeigt wird, in dem Sie gefragt werden, ob Sie den Autor*innen vertrauen, wählen Sie Ja aus.
Klicken Sie im Visual Studio Code-Menü Terminal die Option Neues Terminal aus.
Beachten Sie, dass eine Eingabeaufforderung im Panel „Terminal“ den Ordnerpfad für den aktuellen Ordner anzeigt. Beispiel:
C:\Users\someuser\Desktop>Hinweis
Wenn Sie auf Ihrem eigenen PC und nicht in einer Sandbox oder gehosteten Umgebung arbeiten und schon andere Microsoft Learn-Module in dieser C#-Reihe absolviert haben, haben Sie vielleicht bereits einen Projektordner für Codebeispiele erstellt. In diesem Fall können Sie den nächsten Schritt überspringen, der zum Erstellen einer Konsolen-App im Ordner „TestProject“ verwendet wird.
Geben Sie an der Terminal-Eingabeaufforderung zum Erstellen einer neuen Konsolenanwendung in einem angegebenen Ordner die folgende Eingabeaufforderung ein:
dotnet new console -o ./CsharpProjects/TestProjectDieser .NET-CLI-Befehl verwendet eine .NET-Programmvorlage, um ein neues C#-Konsolenanwendungsprojekt am angegebenen Ordnerspeicherort zu erstellen. Der Befehl erstellt die Ordner „CsharpProjects“ und „TestProject“ für Sie und verwendet „TestProject“ als Namen für Ihre
.csproj-Datei.Wenn eine Meldung angezeigt wird, die Besagt, dass die Dateien bereits vorhanden sind, fahren Sie mit den nächsten Schritten fort. Sie werden die vorhandenen Projektdateien wiederverwenden.
Erweitern Sie in der EXPLORER-Ansicht den Ordner "CsharpProjects ".
Sie sollten den Ordner "TestProject " und zwei Dateien sehen, eine C#-Programmdatei mit dem Namen Program.cs und eine C#-Projektdatei namens TestProject.csproj.
Klicken Sie im Visual Studio Code-Menü Datei auf Ordner öffnen.
Wählen Sie im Dialogfeld "Ordner öffnen " den Ordner "CsharpProjects " und dann " Ordner auswählen" aus.
Erweitern Sie in der EXPLORER-Ansicht den Ordner "TestProject", und wählen Sie dann Program.cs aus.
Löschen Sie die vorhandenen Codezeilen.
Sie verwenden dieses C#-Konsolenprojekt zum Erstellen und Ausführen von Codebeispielen im Rahmen dieses Moduls.
Schließen Sie das Panel „Terminal“.
Deklarieren eines neuen Arrays
Geben Sie den folgenden Code ein, um ein neues Zeichenfolgenarray für drei Elemente zu erstellen:
string[] fraudulentOrderIDs = new string[3];Nehmen Sie sich einen Moment Zeit, um Ihren Code zu überprüfen.
Mit dem
new-Operator wird eine neue Instanz eines Arrays im Arbeitsspeicher des Computers erstellt, die drei Zeichenfolgenwerte enthalten kann. Weitere Informationen zumnew-Schlüsselwort finden Sie im Modul „Aufrufen von Methoden aus der .NET-Klassenbibliothek mithilfe von C#“.Beachten Sie, dass die ersten eckigen Klammern (
[]) den Compiler lediglich darüber informieren, dass die Variable namensfraudulentOrderIDsein Array ist. In den zweiten eckigen Klammern ([3]) wird jedoch die Anzahl der Elemente angegeben, die das Array enthalten kann.Hinweis
In diesem Beispiel wird zwar nur die Deklaration eines Zeichenfolgenarrays veranschaulicht. Doch Sie können für ein Array einen beliebigen Datentyp wählen, etwa Primitiven wie
intundbooloder komplexere Datentypen wie Klassen. In diesem Beispiel werden einfache Zeichenfolgen verwendet, um die Anzahl neuer Konzepte zu reduzieren, die Sie für die ersten Schritte verstehen müssen.
Zuweisen von Werten zu Arrayelementen
Sie haben nun ein Array von Zeichenfolgen deklariert, jedoch sind alle Arrayelemente leer. Verwenden Sie einen numerischen nullbasierten Index in eckigen Klammern, um auf ein Element eines Arrays zuzugreifen. Mithilfe von = können Sie einem Arrayelement einen Wert zuweisen, als würde es sich um eine reguläre Variable handeln.
Aktualisieren Sie den Code wie folgt, um Ihrem
fraudulentOrderIDs-Array Bestell-ID-Werte zuzuweisen:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Nehmen Sie sich einen Moment Zeit, um Ihren Code zu überprüfen.
Beachten Sie, dass Sie auf die Arrayelemente mithilfe des Arraynamens zugreifen. Auf jedes Element wird einzeln zugegriffen, indem in den eckigen Klammern eine nullbasierte Indexnummer angegeben wird.
Da Ihr Array als Zeichenfolge deklariert ist, müssen die von Ihnen zugewiesenen Werte auch Zeichenfolgen sein. In diesem Szenario weisen Sie den Arrayelementen Bestell-IDs zu.
Testen der Verwendung eines Indexes außerhalb des gültigen Arraybereichs
Auch wenn es sich zunächst nicht intuitiv anfühlen mag, sollten Sie beachten, dass Sie die Anzahl der Elemente im Array deklarieren. Allerdings beginnt der Zugriff auf die Arrayelemente bei null. Daher verwenden Sie den Index 1, um auf das zweite Element im Array zuzugreifen.
Es kommt häufig vor, dass Benutzer*innen am Anfang vergessen, dass Arrays nullbasiert sind, und versehentlich versuchen, auf ein nicht vorhandenes Element im Array zuzugreifen. Wenn dies geschieht, wird eine Laufzeitausnahme mit der Meldung ausgelöst, dass Sie versucht haben, auf ein Element außerhalb des gültigen Arraybereichs zuzugreifen.
Lösen Sie nun absichtlich diesen Fehler aus, indem Sie versuchen, auf ein viertes Arrayelement mit dem Indexwert 3 zuzugreifen.
Geben Sie am Ende der Codedatei die folgende Codezeile ein:
fraudulentOrderIDs[3] = "D000";Stellen Sie sicher, dass Ihr Code mit dem folgenden Beispiel übereinstimmt:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Klicken Sie in der EXPLORER-Ansicht auf "TestProject", um ein Terminal am Speicherort des TestProject-Ordners zu öffnen, klicken Sie mit der rechten Maustaste auf "TestProject", und wählen Sie dann " In integriertem Terminal öffnen" aus.
Es sollte ein Terminalbereich mit einer Eingabeaufforderung geöffnet werden, die anzeigt, dass das Terminal für den Speicherort des TestProject-Ordners geöffnet ist.
Geben Sie in der Eingabeaufforderung des Terminals
dotnet buildein, um Ihren Code zu kompilieren, und drücken Sie dann die EINGABETASTE.Daraufhin wird die folgende Meldung angezeigt:
Build succeeded. 0 Warning(s) 0 Error(s)Geben Sie in der Eingabeaufforderung des Terminals
dotnet runein, um Ihren Code auszuführen, und drücken Sie dann die EINGABETASTE.Wenn Sie die App ausführen, erhalten Sie die folgende Laufzeitfehlermeldung:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.<Main>$(String[] args) in C:\Users\someuser\Desktop\CsharpProjects\TestProject\Program.cs:line 6Beachten Sie die folgenden Teile der Fehlermeldung:
- Fehlermeldung:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Fehlerort:
Program.cs:line 6
- Fehlermeldung:
Kommentieren Sie die Zeile aus, die den Laufzeitfehler generiert hat.
// fraudulentOrderIDs[3] = "D000";
Sie wissen nun, wie Sie einem Arrayelement einen Wert zuweisen. Im nächsten Schritt erfahren Sie, wie Sie auf einen Wert zugreifen, der in einem Arrayelement gespeichert ist.
Abrufen von Werten aus Arrayelementen
Der Zugriff auf den Wert eines Arrayelements funktioniert auf die gleiche Weise wie das Zuweisen eines Werts. Sie geben einfach den Index des Elements an, dessen Wert Sie abrufen möchten.
Aktualisieren Sie den Code wie folgt, um die ID-Werte aller betrügerischen Bestellungen zu schreiben:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Klicken Sie in der EXPLORER-Ansicht auf "TestProject", um ein Terminal am Speicherort des TestProject-Ordners zu öffnen, klicken Sie mit der rechten Maustaste auf "TestProject", und wählen Sie dann " In integriertem Terminal öffnen" aus.
Geben Sie in der Eingabeaufforderung des Terminals
dotnet runein, und drücken Sie dann die EINGABETASTE.Daraufhin wird die folgende Meldung angezeigt:
First: A123 Second: B456 Third: C789
Erneutes Zuweisen eines Arraywerts
Arrayelemente sind genau wie jeder andere Variablenwert: Sie können einen Wert für jedes Element im Array zuweisen, abrufen und neu zuweisen.
Geben Sie am Ende der Codedatei den folgenden Code ein, um den Wert des ersten Arrayelements neu zuzuweisen und dann zu schreiben:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Stellen Sie sicher, dass Ihr Code mit dem folgenden Beispiel übereinstimmt:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Klicken Sie in der EXPLORER-Ansicht auf "TestProject", um ein Terminal am Speicherort des TestProject-Ordners zu öffnen, klicken Sie mit der rechten Maustaste auf "TestProject", und wählen Sie dann " In integriertem Terminal öffnen" aus.
Geben Sie in der Eingabeaufforderung des Terminals
dotnet runein, und drücken Sie dann die EINGABETASTE.Daraufhin wird die folgende Meldung angezeigt:
First: A123 Second: B456 Third: C789 Reassign First: F000
Initialisieren eines Arrays
Sie können ein Array wie eine reguläre Variable bei der Deklaration initialisieren.
Kommentieren Sie die Zeilen aus, in denen Sie die Variable
fraudulentOrderIDsdeklarieren.Sie können einen mehrzeiligen Kommentar (
/* ... */) verwenden, um die Deklaration vonfraudulentOrderIDsund die Zeilen auszukommentieren, in denen Sie den Arrayelementen Werte zugewiesen haben.Geben Sie den folgenden Code ein, um in einer einzelnen Anweisung das Array zu deklarieren und die Werte zu initialisieren:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];In diesem Beispiel wird die Sammlungsausdruck-Syntax verwendet, die in C# 12 eingeführt und in .NET 10 unterstützt wird.
Möglicherweise sehen Sie auch ältere Syntax zum Initialisieren von Arrays.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Beachten Sie, dass bei der älteren Syntax geschweifte Klammern (
{}) verwendet wurden, um die Werte des Arrays einzuschließen. Beide Syntaxvarianten sind gültig.Hinweis
In dieser Schulung wird möglicherweise eine Kombination aus der älteren Syntax und der Syntax des Auflistungsausdrucks gezeigt.
Stellen Sie sicher, dass Ihr Code mit dem folgenden Beispiel übereinstimmt:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Nehmen Sie sich einen Moment Zeit, um die Deklarationsanweisung zu überprüfen.
Beachten Sie, dass diese Syntax kompakt und leicht zu lesen ist. Wenn Sie die Anwendung ausführen, sollten keine Änderungen an der Ausgabe festzustellen sein.
Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Klicken Sie in der EXPLORER-Ansicht auf "TestProject", um ein Terminal am Speicherort des TestProject-Ordners zu öffnen, klicken Sie mit der rechten Maustaste auf "TestProject", und wählen Sie dann " In integriertem Terminal öffnen" aus.
Geben Sie in der Eingabeaufforderung des Terminals
dotnet runein, und drücken Sie dann die EINGABETASTE.Es sollte dieselbe Meldung wie zuvor angezeigt werden:
First: A123 Second: B456 Third: C789 Reassign First: F000
Verwenden der Length-Eigenschaft eines Arrays
Je nachdem, wie das Array erstellt wird, wissen Sie möglicherweise nicht im Voraus, wie viele Elemente ein Array enthält. Sie können die Eigenschaft Length verwenden, um die Größe eines Arrays zu ermitteln.
Hinweis
Die Length-Eigenschaft eines Arrays ist nicht nullbasiert.
Geben Sie am Ende Ihrer Codedatei den folgenden Code ein, um die Anzahl betrügerischer Bestellungen zu melden:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");In diesem Code wird die
Length-Eigenschaft des Arrays als ganze Zahl verwendet, um die Anzahl der Elemente imfraudulentOrderIDs-Array zurückzugeben.Stellen Sie sicher, dass Ihr Code mit dem folgenden Beispiel übereinstimmt:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Speichern Sie die Änderungen an Ihrer Program.cs-Datei, und führen Sie dann die Anwendung aus.
Die folgende Ausgabe sollte angezeigt werden:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Zusammenfassung
Die folgenden wichtigen Punkte sollten Sie sich für die Arbeit mit Arrays merken:
- Ein Array ist eine spezielle Variable, die eine Auflistung verwandter Datenelemente enthält.
- Sie sollten sich das grundlegende Format für die Deklaration einer Arrayvariable merken.
- Greifen Sie auf alle Elemente eines Arrays zu, um dessen Werte mithilfe eines nullbasierten Indizes in eckigen Klammern festzulegen oder abzurufen.
- Wenn Sie versuchen, auf einen Index außerhalb des gültigen Arraybereichs zuzugreifen, wird eine Laufzeitausnahme ausgelöst.
- Die Eigenschaft
Lengthbietet Ihnen eine programmgesteuerte Methode, um die Anzahl der Elemente in einem Array zu ermitteln.