close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
LINQ dla początkujących w C#

C# - wprowadzenie do LINQ

LINQ to składnia zapytań, która bardzo ułatwia pracę z danymi. Jest ona ważną częścią ekosystemu C# oraz platformy NET. Dzięki LINQ możemy przetwarzać dane w ten sam sposób, niezależnie od tego z jakiego źródła pochodzą.

Dane w aplikacji mogą przecież pochodzić z różnych źródeł. To może być plik XML albo baza danych SQL. Dane mogą też być dostarczone przez inne części naszej aplikacji, które komunikują się z zewnętrznym serwerem.

LINQ sprawia, że nie musisz się przejmować tym, skąd dane pochodzą. Po prostu przetwarzasz je zawsze tak samo niezależnie od ich źródła.

Znajomość zapytań LINQ jest bardzo ważna dla niemal każdego developera pracującego w środowisku NET.

C# Developer

Naucz się programować w popularnym i przyjaznym języku C#. Ta ścieżka kariery sprawi, że staniesz się pełnoprawnym kandydatem na C# Developera. Ścieżka zawiera dziesiątki zadań, ćwiczeń oraz projektów, które nauczą cię realnych, przydatnych na rynku pracy umiejętności. Dowiedz się więcej

Dwie składnie

LINQ udostępnia dwie podstawowe składnie: składnię zapytań oraz składnię metody. Potraktuj je jako dwa sposoby na osiągnięcie tego samego celu.

W praktyce będziesz używać albo jednej albo drugiej składni. To jest kwestia preferencji, choć czasem projekt, nad którym pracujesz może po prostu narzucać użycie konkretnej składni.

Jak rozpocząć pracę

Aby rozpocząć pracę z LINQ trzeba użyć właściwej przestrzeni nazw:


using System;
using System.Linq;


To standardowe deklaracje, które dodajemy na początku naszego kodu. Dzięki niej możemy korzystać swobodnie z tego wszystkiego co nam oferuje LINQ.

Przykład - zapytanie WHERE

Najlepiej będzie jak od razu przejdziemy do prostego przykładu. Oto nasz kod:


using System;
using System.Linq;

public class Program
{
 public static void Main() {

     var numbers = new int[5] { 7, -4, 2, -1, 0 };

     var numQuery = numbers.Where(n => n > 0);

     foreach (var num in numQuery)
     {
         Console.WriteLine(num);
     }
 }
}


Mam prostą kolekcję pięciu wartości typu int. To jest nasze źródło danych. Tutaj tworzymy zapytanie:


var numQuery = numbers.Where(n => n > 0);


Zwróć uwagę na operator Where() - za jego pomocą możemy wybrać wartości spełniające określone kryterium. My chcemy wybrać wartości większe od 0. Dlatego do operatora przekazaliśmy takie wyrażenie lambda:


n => n > 0


Element n oczywiście reprezentuje pojedynczą wartość. Na tym etapie zmienna numQuery zawiera odfiltrowaną kolecję wartości (wartości większe od 0). Nie pozostaje nic innego jak wyprowadzić te wartości za pomocą pętli. Rezultat działania naszego programu wygląda następująco:

7
2

Mamy dwie wartości, które spełniają nasze kryterium.

Główna zaleta LINQ to prostota oraz zwięzłość. Za pomocą prostego operatora Where mogliśmy odfiltrować dane z kolekcji. A to dopiero początek możliwości jakie oferuje nam LINQ.

Przykład - zapytanie TAKE

Czas na kolejny przykład:


using System;
using System.Linq;

public class Program
{
 public static void Main()
 {
     int[] digits = { 1, 2, 3, 4 };
   
     var query = digits.Take(2);
   
     foreach (var q in query)
     {
         Console.WriteLine(q);
     }
 }
}


Tym razem użyliśmy operatora Take(). Za jego pomocą pobiera z początku kolekcji określoną ilość wartości. Użyliśmy parametru 2 czyli pobieramy dwie pierwsze wartości:


var query = digits.Take(2);


Rezultat działania programu jest łatwy do przewidzenia:

1
2

Mamy więc prosty ale bardzo użyteczny operator. I na tym polega cała filozofia LINQ. Za pomocą prostych operatorów możemy dowolnie przetwarzać kolekcje danych. W tym artykule skupiliśmy się oczywiście na bardzo podstawowych przykładach. W praktyce te podstawowe operatory LINQ możesz oczywiście łączyć w dowolne kombinacje.

Jeszcze raz o składni

W powyższych przykładach użyliśmy tzw. składni metody. Tak jak wspominaliśmy wcześniej, istnieje też druga wersja czyli składnia zapytania. Popatrz na przykład:


var numQuery =
  from n in numbers
      where n > 0
      select n;


Tutaj mamy zapis, który przypomina nieco zapytania pisane w języku SQL. Co ciekawe wynik będzie taki sam jak w przykładzie pierwszym - uzyskamy wartości większe od 0. To po prostu inny sposób na osiągnięcie tego samego celu.

tworzenie aplikacji w C#: Praca z .NET, programowanie aplikacji.

Naucz się programować w popularnym i przyjaznym języku C#. Zdobądź wartościowe umiejętności.

Dowiedz się więcej

Podsumowanie

LINQ to proste narzędzie o wielkich możliwościach. Za pomocą nieskomplikowanych operatorów możesz wykonywać dowolne operacje na danych. I to niezależnie od tego z jakiego źródła te dane pochodzą.

LINQ jest bardzo ważną częścią popularnej platformy .NET. Jeśli zamierzasz w tej technologii pracować to opanowanie LINQ będzie wręcz niezbędne.