Kontekst: W ciągu najbliższego miesiąca wygłosię trzy wykłady na temat lub przynajmniej LINQw 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 LINQdo SQLlub 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 )