Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone
Buduj małe potoki LINQ dla IEnumerable : filtruj za pomocą Where, przekształcaj za pomocą Select, sortuj za pomocą OrderBy i poznaj różnicę między wykonaniem odroczonym a materializacją.
Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 3 lekcji w sumie.
Przegląd LINQ
Cel: Używanie krótkich potoków LINQ do filtrowania, przekształcania i porządkowania danych.
- Where (filtrowanie)
- Select (mapowanie)
- OrderBy, Take/Skip
- Odroczone wykonanie i materializacja
Where + Select
Należy łączyć Where (filtrowanie), a następnie Select (przekształcanie). Potok należy czytać od lewej do prawej.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 1, 2, 3, 4, 5, 6 };
// Filter even numbers, then square them
var query = data.Where(x => x % 2 == 0)
.Select(x => x * x);
foreach (int n in query)
{
Console.WriteLine(n); // 4, 16, 36
}
}
}
OrderBy + Take
Należy sortować za pomocą OrderBy (i ThenBy), a ograniczać wynik za pomocą Take.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] names = new string[] { "Zoe", "Ada", "Alan", "Bob" };
var top2 = names.OrderBy(s => s.Length) // shortest first
.ThenBy(s => s) // tie-breaker
.Take(2);
foreach (string s in top2)
{
Console.WriteLine(s); // Ada, Bob
}
}
}
Projekcja (typ anonimowy)
Select może tworzyć obiekty anonimowe na potrzeby szybkiej zmiany struktury danych (Word, Length).
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "map", "filter", "reduce" };
var info = words.Select(w => new { Word = w, Length = w.Length });
foreach (var x in info)
{
Console.WriteLine(x.Word + " (" + x.Length + ")");
}
}
}
Odroczone wykonanie
Odroczone wykonanie: Zapytanie jest wykonywane podczas iterowania. Zmiany w źródle dokonane przed wyliczeniem wpływają na wyniki.
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3 };
var q = numbers.Where(x => x > 1); // not executed yet
numbers.Add(4); // modify source before enumeration
foreach (int x in q) // executes here
{
Console.WriteLine(x); // 2, 3, 4
}
}
}
Materializacja i składnia
Należy używać ToList/ToArray, aby wykonać zapytanie i zapisać wyniki. Składnia zapytań to inny sposób zapisania tego samego potoku.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 3, 1, 2 };
// Method syntax + materialize
var sorted = data.OrderBy(x => x).ToList(); // executes now
data[0] = 100; // will not affect 'sorted' (already materialized)
foreach (int n in sorted) { Console.WriteLine(n); } // 1,2,3
// Query syntax (equivalent)
var query =
from x in data
where x < 50
select x * 2;
foreach (int n in query) { Console.WriteLine(n); } // 2,4
}
}
Znaczenie odroczonego wykonania
Podsumowanie
Podsumowanie: Potoki należy budować za pomocą Where, Select, OrderBy oraz Take/Skip. LINQ działa odroczone — gdy potrzebne są stabilne wyniki, należy wykonać materializację za pomocą ToList/ToArray.
Ucz się C# dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 93
- Lekcje
- 346
Często zadawane pytania
Czy lekcja „Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone” jest bezpłatna?
Tak — pełny tekst „Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone”?
Buduj małe potoki LINQ dla IEnumerable : filtruj za pomocą Where, przekształcaj za pomocą Select, sortuj za pomocą OrderBy i poznaj różnicę między wykonaniem odroczonym a materializacją. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.
Ile czasu zajmuje lekcja „Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tablice, wycinki, List , Dictionary
- Wzorce foreach i inicjalizatory kolekcji
- Wprowadzenie do LINQ: Where, Select, OrderBy, Take/Skip; wykonanie odroczone