W tym wpisie zamieszczę kilka wskazówek i informacji jak w miarę bezboleśnie rozpocząć naukę i pracę z Linq i na co warto zwrócić uwagę. Praca z linq daje możliwość obsługi wielu źródeł danych za pomocą tych samych metod, jako przykład wykorzystam bazę danych, którą pokazałem kilka wpisów temu. Do połączenia z bazą danych używam EntityFramework. …
Archowum tagów: Linq
sie 26
Linq inside (IQueryable i Expression)
W ostatnim wpisie z tej serii chciałem przedstawić najważniejszą cechę linq, mianowicie niezależność od źródła danych. Jak pisałem wcześniej Linq jest połączeniem 5 elementów: extension methods yield Func, Predicate, Action wyrażenia lambda IQueryable i Expression Trees We wszystkich poprzednich wpisach pracowaliśmy na kolekcjach, które przechowywane były w pamięci, jednak linq ma dużo większe możliwości obsługuje …
sie 21
Linq inside (lamba expressions)
Dzisiaj opisze mechanizm lamba expression. Dla przypomnienia Linq jest połączeniem 5 elementów: extension methods yield Func, Predicate, Action wyrażenia lambda IQueryable i Expression Trees Wyrażenia lambda to nic innego jak syntactic sugar czyli taki bonus od Microsoftu, który ułatwia pisanie kodu. Wyrażenia lambda upraszczają zapisu delegatu. Przypomnijmy przykład z poprzedniego wpisu.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Program { static void Main(string[] args) { var list = new List<int> {2, 4, 6, 8, 5, 10}; Func<int,bool> isModTwo = delegate(int i) { return i%2 == 0; }; foreach (var x in list.TakeWhile(isModTwo)) { Console.WriteLine(x); } } } |
Przykład ten wypisuje …
sie 17
Linq inside (Func, Predicate, Action)
W kolejnym wpisie o linq przedstawię zasadę działania Func, Predicate, Action. Dla przypomnienia Linq jest połączeniem 5 elementów: extension methods yield Func, Predicate, Action wyrażenia lambda IQueryable i Expression Trees Przyjrzyjmy się najpierw deklaracji tych trzech typów.
1 2 3 4 5 6 7 8 9 |
public delegate void Action<in T>(T obj); public delegate bool Predicate<in T>( T obj ) public delegate TResult Func<in T, out TResult>( T arg ) |
Z definicji tych wynika, ze powyższe typy to nic innego jak delegaty. Do każdego z tych typów …
sie 14
Linq inside (yield)
W poprzednim wpisie opisałem extension methods, dzisiaj czas na kolejny element moim zdaniem bardzo ważny do zrozumienia działania linq mianowicie słowo kluczowe yield. Dla przypomnienia Linq jest połączeniem 5 elementów: extension methods yield Func, Predicate, Action wyrażenia lambda IQueryable i Expression Trees Zasadę działania słowa kluczowego yield najlepiej zobrazuje przykład. Załóżmy, że mamy metodę, która …
sie 10
Linq inside (Extension methods)
Blogowania chciałem rozpocząć od cyklu wpisów o Linq. Każdy dobry programista C# powinien umieć się posługiwać Linq, nie każdy niestety wie jak to właściwie działa. Linq wprowadza wspólny interfejs do pracy z kolekcjami niezależnie od źródła danych. Linq jest połączeniem 5 elementów: extension methods yield Func, Predicate, Action wyrażenia lambda IQueryable i Expression Trees W …
Najnowsze komentarze