Tablice praktyczny przykład – importowanie danych z pliku.

2) Importowanie danych z pliku.

Tematem tego demo będzie populacja ludności w miastach wojewódzkich w Polsce. Dane te pochodzą z zewnętrznego pliku danych, plik CSV, a nasz kod będzie musiał odczytać ten plik do kolekcji aby nasza aplikacja mogła korzystać z tych danych i wyświetlić je na ekranie.

Na starcie nasza aplikacja po prostu wyświetli listę 7 najbardziej zaludnionych miast w Polsce, w kolejności od najbardziej zaludnionego miasta. I to jest to co nasze demo będzie robić. Zacznijmy.

Zaczynam od utworzenia klasy miasto, która będzie reprezentować pojedyńcze miasto w Polsce. Napiszę teraz potrzebny nam kod.
I przeanalizujmy go po wpisaniu.

Nie dzieje się tutaj nic niezwykłego . Klasa miasto zawiera tylko właściwości  do odczytu  dla nazwy miasta, kodu , panstwa zadeklarowane jako stringi  i populacje ludności całkowitą menzczyzn i kobiet zadeklarowaną jak int. (liczba całkowita).

Konstruktor wymaga dostarczenia wszystkich tych informacji w czasie tworzenia instancji klasy, klasa ta jest zasadniczo tylko workiem na dane tylko do odczytu. Teraz utworzę klasę CsvReader, które będzie obsługiwać odczyt pliku CSV.

Klasa ta zawiera pole, które przechowuje ścieżkę do pliku danych CSV, i konstruktora, który oczekuje tej ścieżki do pliku, a następnie jest metoda nazwana ReadFirstNCitys.

Będzie to metoda, która importuje miasta z pliku. Jako parametr przyjmuje liczbą całkowitą, która mówi ile miast ma odczytać z pliku i zwraca tablicę miast. I ta metoda nie została jeszcze skończona w tym momencie jest to fikcyjna metoda która zwraca null, a użycie tej metody która zwraca null pokazuje ważną kwestię dotyczącą tablic. Mimo całej ich unikalnej składni w nawiasach kwadratowych, tablice są całkowicie normalnymi typami referencyjnymi. Możesz traktować je tak jak każdy inny typ referencyjny,
możesz ustawić je na wartość null i możesz zwrócić je z funkcji .

Przejdzmy teraz do głównej metodu programu,
która kontroluje ogólną logikę aplikacji.
Napiszę teraz potrzebny nam kod.
I Przeanalizujmy go po wpisaniu.

Pierwszą rzeczą jaką robię to jest ustawienie sciezki do pliku danych CSV.
Aby zachować proste przykładu,  zakodujemy na stałe scieżkę do lokalizacji pliku w moim systemie i następnie utworzenie instancji klasy CsvReader.

Potem deklarują tablicę z miastami i  tworzę jej instancje ustawiając ją równą temu, co zwraca metoda ReadFirstNCitys. I przekazuję do metody liczbe siedem ponieważ chce siedem miast. Następnie mam pętlę foreach tak jak w poprzednim rozdziale która służy do wyświetlenia miasta .
I wyswietlam tylko populację całkowitą kod i nazwę miasta.

Jeśli uruchomię teraz naszą aplikację, to ona nie zadziała dostaniemy wyjątek  NullReferenceException w miejscu, w którym chcemy iterować nasze miasta z tablicy miast. Powodem tego jest to, że nasza metoda ReadFirstNCitys zwraca NULL. Dlatego  nasza zmienna miasta zwraca null i gdy wchodzimy do pętli, nie możemy iterować się po pustej kolekcji.

Zmienna po której iterujemy w  pętli musi mieć rzeczywiste wartości.
Musimy Więc zaimplementować metodę ReadFirstNCitys prawidłowo 
aby nie zwracał nulli.

Cały kurs dostępny na Udemy

!!! Dodatkowo Prezent !!!

Książka “Wprowadzenie do kolekcji C#”

Kup kurs przez ten link. Jest to dla mnie ważne !!!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *