LINQ w C# -czytelny kod, wydajne zapytania
- Opis
- Program
- Najczęściej zadawane pytania
- Recenzje
Ten kurs poświęcony jest programowaniu w języku C#, ze szczególnym naciskiem na LINQ (Language Integrated Query) – narzędzie, które stało się nieodzowną częścią codziennej pracy programisty .NET.
W trakcie kursu poznasz nie tylko składnię LINQ, ale przede wszystkim mechanizmy języka C#, które umożliwiają jego działanie. Omówimy takie zagadnienia jak metody rozszerzeń, wyrażenia lambda oraz ich zastosowanie zarówno w LINQ, jak i poza nim. Dzięki temu zdobędziesz wiedzę przydatną w całym ekosystemie C#, niezależnie od tego, czy w danym momencie używasz LINQ.
Kurs opiera się na realistycznych przykładach. Będziemy pracować na większych zbiorach danych, analizując m.in. dane dotyczące zużycia paliwa w samochodach. Nauczysz się:
- filtrować, sortować i projektować dane,
- łączyć wiele źródeł danych,
- grupować i agregować informacje w celu uzyskania statystyk zbiorczych,
- świadomie korzystać z mechanizmu odroczonego wykonania (deferred execution).
Szczególną uwagę poświęcimy wydajności zapytań LINQ oraz typowym pułapkom, które mogą prowadzić do nieoczekiwanych błędów lub spadków performance’u. Podzielę się również praktycznymi wskazówkami i dobrymi praktykami, które wynikają z wieloletniego doświadczenia.
W dalszej części kursu zobaczysz, jak LINQ działa w połączeniu z innymi źródłami danych – od plików XML, po relacyjne bazy danych z wykorzystaniem Entity Framework i Microsoft SQL Server.
Po ukończeniu kursu będziesz w stanie świadomie i efektywnie używać LINQ w swoich aplikacjach, rozwiązując złożone problemy przy użyciu zwięzłego, czytelnego i łatwego w utrzymaniu kodu.
Czego się nauczysz
- jak działa LINQ i jakie mechanizmy C# stoją za jego funkcjonowaniem,
- tworzyć i wykorzystywać metody rozszerzeń oraz wyrażenia lambda,
- filtrować, sortować i projektować dane przy użyciu LINQ,
- łączyć, grupować i agregować dane z wielu źródeł,
- rozumieć i kontrolować mechanizm odroczonego wykonania,
- pisać wydajne zapytania LINQ i unikać typowych problemów performance’owych,
- korzystać z LINQ w pracy z kolekcjami, XML oraz bazami danych (Entity Framework + SQL Server).
Dla kogo jest ten kurs
- dla programistów C#, którzy chcą lepiej zrozumieć i efektywnie wykorzystywać LINQ,
- dla juniorów i midów, którzy używają LINQ, ale chcą pisać bardziej świadomy i czytelny kod,
- dla developerów .NET pracujących z Entity Framework i bazami danych,
- dla osób, które chcą poprawić jakość, wydajność i utrzymanie swojego kodu.
Wymagania
- podstawowa znajomość języka C#,
- zrozumienie typów generycznych (generics),
- podstawowa wiedza o kolekcjach w .NET.
Znajomość LINQ nie jest wymagana – kurs prowadzi od fundamentów do praktycznych zastosowań. W razie potrzeby możesz również uzupełnić wiedzę z C# w dedykowanych kursach.
-
1Czym naprawdę jest LINQ03:16
-
2Praca z plikami bez LINQ – punkt odniesienia15:48This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
3LINQ – składnia zapytania (query syntax)06:56This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
4LINQ – składnia metody (method syntax)03:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
5O czym będziemy mówić01:32This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
6Wprowadzenie04:23This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
7Dlaczego IEnumerable to serce LINQ12:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
8Metody rozszerzające – jak LINQ „wchodzi” do C#15:48This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
9Wyrażenia lambda – czytelny kod zamiast pętli16:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
10Func, Action i delegaty w LINQ17:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
11Var – kiedy pomaga, a kiedy szkodzi10:09This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
12Query syntax vs Method syntax – świadomy wybór15:19This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
13Podsumowanie01:56This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
14Wprowadzenie00:48This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
15Budowa własnego filtra LINQ13:55This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
16Odroczone wykonanie – kluczowa koncepcja14:26This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
17Jak działa deferred execution03:54This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
18Kiedy odroczone wykonanie jest zaletą14:22This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
19Najczęstsze pułapki deferred execution08:48This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
20Wyjątki a odroczone zapytania07:39This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
21Operatory strumieniowe11:06This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
22Zapytania nieskończone – teoria i praktyka09:57This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
23Podsumowanie01:10This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
24Wprowadzenie05:22This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
25Przetwarzanie plików CSV z użyciem LINQ02:30This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
26Wczytywanie danych – implementacja16:27This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
27Wczytywanie danych – query syntax04:22This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
28Sortowanie danych14:09This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
29Filtrowanie danych17:31This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
30Any, All, Contains – kiedy i dlaczego06:54This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
31Prezentacja danych wynikowych18:04This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
32SelectMany – spłaszczanie struktur09:52This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
33Podsumowanie01:07This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
34Wprowadzenie05:46This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
35Łączenie danych – query syntax13:47This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
36Łączenie danych – method syntax15:25This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
37Join po kluczu złożonym05:34This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
38Grupowanie danych14:55This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
39GroupJoin – model danych hierarchicznych14:46This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
40Grupowanie – ćwiczenie praktyczne08:50This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
41Agregacja danych - query syntax10:42This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
42Agregacja danych - method syntax04:54This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
43Podsumowanie00:53This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
44Wprowadzenie03:10This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
45Budowanie dokumentów XML w LINQ16:36This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
46Funkcyjna konstrukcja XML12:55This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
47Odczyt i zapytania LINQ do XML16:38This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
48Przestrzeniami nazw w XML14:26This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
49Podsumowanie00:47This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
50Wprowadzenie00:45This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
51Konfiguracja encji i modelu danych09:51This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
52Seedowanie danych – zapis do bazy12:01This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
53Pierwsze zapytanie LINQ do bazy danych10:59This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
54IQueryable i drzewami ekspresji13:52This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
55Ostrzeżenia i pułapki15:59This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
56Zaawansowane zapytanie12:56This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
-
57Podsumowanie01:48This lesson is locked because you haven't completed the previous one yet. Finish the previous lesson to unlock this one.
