Kontekst: W ciągu najbliższego miesiąca wygłosię trzy wykłady na temat lub przynajmniej LINQ
w kontekście C#
. Chciałbym wiedzieć, na które tematy warto poświęcić sporo uwagi, w oparciu o to, co ludzie mogą mieć trudności z zrozumieniem lub na co mogą mieć błędne wrażenie. Nie będę mówić o specjalnie LINQ
do SQL
lub Entity Framework wyjątkiem przykładów jak Zapytania mogą być wykonywane zdalnie za pomocą wyrażenia drzew (zwykle IQueryable
).
A więc, co ci tak trudno LINQ
? Co widziałeś w kategoriach nieporozumień? Przykładami mogą być następujące, ale nie ograniczaj się!
- Jak
C#
kompilator traktuje wyrażenia zapytania - Wyrażenia lambda
- Drzewa ekspresji
- Metody rozszerzenia
- Anonimowe typy
IQueryable
- Odroczone vs natychmiastowe wykonanie
- Streaming vs buforowane wykonanie (np. OrderBy jest odroczony, ale buforowany)
- Zmienne lokalne niejawnie wpisane
- Odczytywanie złożonych podpisów ogólnych (np. Enumerable.Join )