Ćwiczenie — wprowadzenie do podstaw tablicy
- {liczbaMinut} minut
Tablice mogą służyć do przechowywania wielu wartości tego samego typu w jednej zmiennej. Wartości przechowywane w tablicy są zwykle powiązane. Na przykład lista nazw uczniów może być przechowywana w tablicy ciągów o nazwie students.
Twoja praca w dziale bezpieczeństwa koncentruje się na znalezieniu wzorca fałszywych zamówień. Chcesz, aby kod przeglądał wcześniejsze zamówienia klientów i identyfikował znaczniki skojarzone z fałszywymi zamówieniami. Twoja firma ma nadzieję, że znaczniki mogą służyć do identyfikowania potencjalnych fałszywych zamówień zakupu w przyszłości przed ich przetworzeniem. Ponieważ nie zawsze wiesz z wyprzedzeniem, ile zamówień należy przejrzeć, nie można utworzyć pojedynczych zmiennych do przechowywania każdego identyfikatora zamówienia. Jak utworzyć strukturę danych do przechowywania wielu powiązanych wartości?
W tym ćwiczeniu użyjesz tablic do przechowywania i analizowania kolekcji identyfikatorów zamówień.
Co to jest tablica?
Tablica to kolekcja poszczególnych elementów danych dostępnych za pośrednictwem pojedynczej nazwy zmiennej. Aby uzyskiwać dostęp do każdego elementu tablicy, należy używać indeksu liczbowego zaczynającego się od zera. Tablice umożliwiają utworzenie kolekcji wartości danych, które mają wspólny cel lub cechy w ramach jednej nazwy zmiennej w celu łatwiejszego przetwarzania.
Deklarowanie tablic i uzyskiwanie dostępu do elementów tablicy
Tablica jest specjalnym typem zmiennej, który pozwala przechowywać wiele wartości tego samego typu danych. Składnia deklaracji jest nieco inna dla tablicy, ponieważ należy określić zarówno typ danych, jak i rozmiar tablicy.
Przygotowywanie środowiska kodowania
Ten moduł zawiera działania, które prowadzą Cię przez proces tworzenia i uruchamiania przykładowego kodu. Zachęcamy do wykonania tych działań przy użyciu programu Visual Studio Code jako środowiska programistycznego. Korzystanie z programu Visual Studio Code dla tych działań ułatwia pisanie i uruchamianie kodu w środowisku deweloperów używanym przez specjalistów na całym świecie.
Otwórz Visual Studio Code.
Aby otworzyć program Visual Studio Code, możesz użyć menu Start systemu Windows (lub równoważnego zasobu dla innego systemu operacyjnego).
W menu Plik programu Visual Studio Code wybierz pozycję Otwórz folder.
W oknie dialogowym Otwieranie folderu przejdź do folderu Pulpit systemu Windows.
Jeśli masz inną lokalizację folderu, w której są utrzymywane projekty kodu, możesz zamiast tego użyć tej lokalizacji folderu. Na potrzeby tego szkolenia ważne jest, aby mieć lokalizację, która jest łatwa do zlokalizowania i zapamiętania.
W oknie dialogowym Otwieranie folderu wybierz pozycję Wybierz folder.
Jeśli zostanie wyświetlone okno dialogowe zabezpieczeń z pytaniem, czy ufasz autorom, wybierz pozycję Tak.
W menu Terminal programu Visual Studio Code wybierz pozycję Nowy terminal.
Zwróć uwagę, że wiersz polecenia w panelu Terminal wyświetla ścieżkę folderu dla bieżącego folderu. Na przykład:
C:\Users\someuser\Desktop>Uwaga
Jeśli pracujesz na własnym komputerze, a nie w piaskownicy lub w środowisku hostowanym i ukończono inne moduły Microsoft Learn w tej serii języka C#, być może utworzono już folder projektu dla przykładów kodu. Jeśli tak jest, możesz pominąć następny krok, który służy do tworzenia aplikacji konsolowej w folderze TestProject.
W wierszu polecenia terminalu, aby utworzyć nową aplikację konsolową w określonym folderze, wprowadź następujący monit:
dotnet new console -o ./CsharpProjects/TestProjectTo polecenie interfejsu wiersza polecenia platformy .NET używa szablonu programu .NET do utworzenia nowego projektu aplikacji konsolowej języka C# w określonej lokalizacji folderu. Polecenie tworzy foldery CsharpProjects i TestProject i używa elementu TestProject jako nazwy
.csprojpliku.Jeśli zostanie wyświetlony komunikat informujący o tym, że pliki już istnieją, przejdź do następnych kroków. Użyjesz ponownie istniejących plików projektu.
W widoku EKSPLORATOR rozwiń folder CsharpProjects .
Powinien zostać wyświetlony folder TestProject i dwa pliki, plik programu C# o nazwie Program.cs i plik projektu C# o nazwie TestProject.csproj.
W menu Plik programu Visual Studio Code wybierz pozycję Otwórz folder.
W oknie dialogowym Otwieranie folderu wybierz folder CsharpProjects , a następnie wybierz pozycję Wybierz folder.
W widoku EKSPLORATOR rozwiń folder TestProject, a następnie wybierz pozycję Program.cs.
Usuń istniejące wiersze kodu.
Ten projekt konsoli języka C# będzie używany do tworzenia, kompilowania i uruchamiania przykładów kodu w tym module.
Zamknij panel Terminal.
Deklarowanie nowej tablicy
Aby zadeklarować nową tablicę ciągów, które mogą zawierać trzy elementy, wprowadź następujący kod:
string[] fraudulentOrderIDs = new string[3];Pośmiń minutę, aby zbadać kod.
Operator
newtworzy w pamięci komputera nowe wystąpienie tablicy, która będzie przechowywać trzy wartości ciągu. Aby uzyskać więcej informacji o słowie kluczowymnew, zobacz moduł „Wywoływanie metod z biblioteki klas platformy .NET przy użyciu języka C#”.Zwróć uwagę, że pierwszy zestaw nawiasów kwadratowych
[]informuje tylko kompilator, że zmienna o nazwiefraudulentOrderIDsjest tablicą, ale drugi zestaw nawiasów kwadratowych[3]wskazuje liczbę elementów, które tablica może przechowywać.Uwaga
W tym przykładzie pokazano, jak zadeklarować tablicę ciągów, można jednak utworzyć tablicę każdego typu danych, w tym typy pierwotne, takie jak i
int, a także bardziej złożone typy danych, takiebooljak klasy. W tym przykładzie użyto prostych ciągów, aby zminimalizować liczbę nowych koncepcji, które należy opanować przy rozpoczynaniu pracy.
Przypisywanie wartości do elementów tablicy
W tym momencie zadeklarowaliśmy tablicę ciągów, ale każdy element tablicy jest pusty. Aby uzyskać dostęp do elementu tablicy, należy w nawiasach kwadratowych użyć indeksu liczbowego zaczynającego się od zera. Wartość można przypisać do elementu tablicy przy użyciu zmiennej = tak, jakby była to zwykła zmienna.
Aby przypisać wartości identyfikatora zamówienia do
fraudulentOrderIDstablicy, zaktualizuj kod w następujący sposób:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Pośmiń minutę, aby zbadać kod.
Zwróć uwagę, że używasz nazwy tablicy do uzyskiwania dostępu do elementów tablicy. Dostęp do każdego elementu jest uzyskiwany indywidualnie, określając numer indeksu zero wewnątrz nawiasów kwadratowych.
Ponieważ tablica jest zadeklarowana jako ciąg, przypisywane wartości również muszą być ciągami. W tym scenariuszu przypisujesz identyfikatory zamówień do elementów tablicy.
Próba użycia indeksu, który znajduje się poza granicami tablicy
Początkowo nie wydaje się to intuicyjne, ale należy pamiętać, że deklarujesz liczbę elementów w tablicy. Jednak uzyskujesz dostęp do każdego elementu tablicy rozpoczynającej się od zera. Aby uzyskać dostęp do drugiego elementu w tablicy, należy użyć indeksu 1.
Dla początkujących często zapomina się, że tablice są oparte na zera i próbują uzyskać dostęp do elementu tablicy, który nie istnieje. Jeśli popełnisz ten błąd, wystąpi wyjątek środowiska uruchomieniowego informujący o próbie uzyskania dostępu do elementu, który znajduje się poza granicą tablicy.
Aby celowo "przerwać" aplikację, spróbuj uzyskać dostęp do czwartego elementu tablicy przy użyciu wartości indeksu 3.
W dolnej części pliku kodu wprowadź następujący wiersz kodu:
fraudulentOrderIDs[3] = "D000";Upewnij się, że kod jest zgodny z tym przykładem:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.
W widoku EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.
Panel terminalu powinien zostać otwarty i powinien zawierać wiersz polecenia pokazujący, że terminal jest otwarty w lokalizacji folderu TestProject .
W wierszu polecenia terminalu, aby skompilować kod, wpisz
dotnet build, a następnie naciśnij Enter.Powinien zostać wyświetlony następujący komunikat:
Build succeeded. 0 Warning(s) 0 Error(s)W wierszu polecenia terminalu, aby uruchomić kod, wpisz
dotnet run, a następnie naciśnij Enter.Po uruchomieniu aplikacji zostanie wyświetlony następujący komunikat o błędzie środowiska uruchomieniowego:
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 6Zwróć uwagę na następujące części błędu:
- Komunikat o błędzie:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Lokalizacja błędu:
Program.cs:line 6
- Komunikat o błędzie:
Oznacz jako komentarz wiersz, który wygenerował błąd środowiska uruchomieniowego.
// fraudulentOrderIDs[3] = "D000";
Pokazano, jak przypisać wartość do elementu tablicy. Teraz przyjrzyj się, jak uzyskać dostęp do wartości przechowywanej w elemecie tablicy.
Pobieranie wartości z elementów tablicy
Uzyskiwanie dostępu do wartości elementu tablicy działa tak samo jak przypisywanie wartości do elementu tablicy. Wystarczy określić indeks elementu, którego wartość chcesz pobrać.
Aby zapisać wartość każdego fałszywego identyfikatora zamówienia, zaktualizuj kod w następujący sposób:
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 menu Plik programu Visual Studio Code wybierz pozycję Zapisz.
W widoku EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.
W wierszu polecenia terminalu wpisz
dotnet run, a następnie naciśnij Enter.Powinien zostać wyświetlony następujący komunikat:
First: A123 Second: B456 Third: C789
Ponowne przypisywanie wartości tablicy
Elementy tablicy są tak samo jak każda inna wartość zmiennej. Możesz przypisać, pobrać i ponownie przypisać wartość do każdego elementu tablicy.
Na końcu pliku kodu, aby ponownie przypisać, a następnie wydrukować wartość pierwszego elementu tablicy, wprowadź następujący kod:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Upewnij się, że kod jest zgodny z następującym przykładem:
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 menu Plik programu Visual Studio Code wybierz pozycję Zapisz.
W widoku EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.
W wierszu polecenia terminalu wpisz
dotnet run, a następnie naciśnij Enter.Powinien zostać wyświetlony następujący komunikat:
First: A123 Second: B456 Third: C789 Reassign First: F000
Inicjowanie tablicy
Tablicę można zainicjować podczas deklaracji, tak jak w przypadku zmiennej regularnej.
Oznacz jako komentarz wiersze, w których zadeklarowana jest zmienna
fraudulentOrderIDs.Możesz użyć komentarza wielowierszowego (
/* ... */), aby oznaczyć deklaracjęfraudulentOrderIDsi wiersze używane do przypisywania wartości do elementów tablicy.Aby zadeklarować tablicę i zainicjować wartości w jednej instrukcji, wprowadź następujący kod:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];W tym przykładzie użyto składni wyrażenia Collection, która została wprowadzona w C# 12 i jest obsługiwana na platformie .NET 10.
Możesz również zobaczyć starszą składnię używaną do inicjowania tablicy.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Zwróć uwagę, że ta starsza składnia używa nawiasów klamrowych
{}do ujęć wartości tablicy. Obie składnie są prawidłowe.Uwaga
W tym szkoleniu może zostać wyświetlona kombinacja starszej składni i składnia wyrażeń Kolekcji.
Upewnij się, że kod jest zgodny z następującym przykładem:
/* 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]}");Pośmiń minutę, aby zbadać instrukcję deklaracji.
Zwróć uwagę, że ta składnia jest zarówno kompaktowana, jak i łatwa do odczytania. Po uruchomieniu aplikacji nie powinno być żadnych zmian w danych wyjściowych.
W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.
W widoku EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.
W wierszu polecenia terminalu wpisz
dotnet run, a następnie naciśnij Enter.Powinien zostać wyświetlony ten sam komunikat co poprzednio:
First: A123 Second: B456 Third: C789 Reassign First: F000
Używanie właściwości Length tablicy
Zależnie od sposobu tworzenia tablicy może nie być z góry wiadomo, ile ma ona elementów. Aby ustalić rozmiar tablicy, można użyć właściwości Length.
Uwaga
Właściwość Length tablicy nie jest oparta na zera.
Na końcu pliku kodu, aby zgłosić liczbę fałszywych zamówień, wprowadź następujący kod:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Ten kod używa właściwości tablicy
Length, liczby całkowitej, aby zwrócić liczbę elementów wfraudulentOrderIDstablicy.Upewnij się, że kod jest zgodny z tym przykładem:
/* 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.");Zapisz zmiany w pliku Program.cs , a następnie uruchom aplikację.
Powinny zostać wyświetlone następujące dane wyjściowe:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Podsumowanie
Oto najważniejsze kwestie, które należy zapamiętać podczas pracy z tablicami:
- Tablica to specjalna zmienna, która zawiera kolekcję powiązanych elementów danych.
- Należy zapamiętać podstawowy format deklaracji zmiennej tablicowej.
- Można uzyskiwać dostęp do każdego elementu tablicy, aby ustawić lub pobrać jej wartości, używając w nawiasach kwadratowych indeksu liczbowego zaczynającego się od zera.
- Jeśli próbujesz uzyskać dostęp do indeksu poza granicą tablicy, otrzymasz wyjątek czasu wykonywania.
- Właściwość
Lengthpozwala programowo ustalać liczbę elementów tablicy.