Monthly Archives: Grudzień 2014

Pobranie określonej liczby elementów z listy C# Linq

Linq dodaje wiele kapitalnych funkcji, dzięki którym możemy w bardzo prosty i czytelny sposób wykonać zadanie, które trzeba by było napisać w 3 linijkach i więcej. Taką funkcją, która działa i ma nazwę mówiącą o tym czym się zajmuje, jest funkcja „Take”

1. Jeżeli chcemy wybrać z listy 5 pierwszych elementów, wystarczy wykonać polecenie Take w taki sposób:

var firstFiveItems = myList.Take(5);

2. Jeżeli chcemy pominąć kilka pierwszych elementów, które już wcześniej zostały zwrócone, to wystarczy dodać polecenie Skip i można już pobierać tyle elementów ile potrzeba:

var secondFiveItems = myList.Skip(5).Take(5);

3. Oczywiście jest możliwość, żeby najpierw posortować dane, a dopiero później zwrócić kolejne 5 elementów, możemy tego dokonać za pomocą poniższego kodu:

var firstFiveArrivals = myList.OrderBy(i => i.ArrivalTime).Take(5);

Z pewnością jeszcze wiele razy będę wspominał o funkcjach Linq na łamach poradnika, a tymczasem zapraszam do zapoznania się z innymi funkcjami, np. sortowanie, czy też szukanie różnic w dwóch listach.

Xamarin Android Shared Preferences

Genialną rzeczą jaką zaimplementowano w Androidzie, jest mechanizm „Shared Preferences”. Pomaga on przechowywać niewielkie ilości informacji w telefonie, bez zbędnego komplikowania tworzeniem bazy SQL. Dzięki temu mechanizmowi możemy zapisywać np. ilość zdobytych punktów w grze, jakieś szczególne preferencje użytkownika, itp.

Ale to jeszcze nie wszystko co oferuje ten mechanizm. Możemy korzystać z danych w każdym miejscu naszej aplikacji, a dane przy następnym uruchomieniu programu będą nadal dostępne.

Co możemy zapisać?

Za pomocą Shared Preferences możemy zapisywać tylko podstawowe struktury danych (boolean, float, int, long, String), ale to do prostych zastosowań w zupełności wystarcza.

W jaki sposób dane są zapisywane?

Dane zapisywane są w postaci klucz – dane, czyli aby odwołać się do konkretnych wcześniej zapisanych danych, należy znać klucz. Wszystkie te dane zapisywane są w pliku XML i przechowywane w katalogu aplikacji.

        private void Zapis()
        {
            var prefs = Application.Context.GetSharedPreferences("NazwaAplikacji", FileCreationMode.Private); // 1
            var prefEditor = prefs.Edit(); // 2
            prefEditor.PutString("Klucz", "Wartosc"); // 3
            prefEditor.Commit(); // 4
        }

        private void Odczyt()
        {
            var prefs = Application.Context.GetSharedPreferences("NazwaAplikacji", FileCreationMode.Private);       
            var somePref = prefs.GetString("Klucz", null); // 5
        }

Komentarze do powyższego kodu:

1. Próbujemy pobrać lub stworzyć obiekt Shared Preferences o konkretnej nazwie, w naszym przypadku jest to „NazwaAplikacji”, ale może być dowolny ciąg znaków, ważne żeby ustalić sobie jakiś i z niego korzystać już w całej aplikacji. Określamy również, że plik tworzony będzie w trybie prywatnym (FileCreationMode.Private), czyli klucze w nim zawarte będą dostępne tylko z poziomu tej aplikacji.

2. Tworzymy obiekt edytujący Shared Preferences.

3. Ustalamy klucz i przypisujemy mu wartość.

4. Ważne, żeby dopisać tę linijkę kodu, ponieważ bez niej żadna zmiana nie zostanie zastosowana.

5. Pobieramy wartość znajdującą się pod kluczem „Klucz”, a gdy nie będzie takiej wartości to funkcja ma zwrócić Null. (Swoją drogą fajny pomysł, że sami możemy zwrócić to co chcemy gdy takiej wartości nie ma)

Shared Preferences .NET

W najbliższym czasie udostępnię na łamach poradnika mechanizm Shared Preferences dla .Net, który aktualnie piszę i testuje.