LINQ Flashcards
Explain what the Where clause.
It permits the addition of some filters to the query. The where clause filters the collection according to the given condition and returns a new collection. It requests a Boolean constraint (predicate) to each source element (referenced by the range variable) and returns those for which the defined condition is true.
How is LINQ better than the stored procedures?
Debugging Stored Procedures is tough, but it is relatively easier to debug LINQ’s queries.
LINQ is Type Safe. Thus, query errors are revised at the time of compilation.
The deployment is managed by passing an extra script for stored procedures, but with LINQ, deployment is comparatively simple and easy.
LINQ (Language Integrated Query)
technologia w języku C#, która pozwala na wykonywanie zapytań na danych w sposób zintegrowany z językiem programowania. LINQ umożliwia manipulowanie danymi przechowywanymi w różnych źródłach danych, takich jak tablice, listy, bazy danych, kolekcje XML, czy dane w pamięci, przy użyciu jednolitego i zwięzłego składniowo podejścia.
LINQ metody
Select: Wybieranie danych z kolekcji.
Where: Filtrowanie danych.
OrderBy: Sortowanie danych.
GroupBy: Grupowanie danych.
Aggregate: Agregowanie danych, np. sumowanie, liczenie.
Join: Łączenie kolekcji.
Distinct: Usuwanie duplikatów.
LINQ może działać na różnych źródłach danych:
LINQ to Objects: Operacje na obiektach w pamięci, np. listach i tablicach.
LINQ to SQL: Zapytania do baz danych SQL.
LINQ to Entities (Entity Framework): Operacje na bazach danych przy użyciu ORM (Object-Relational Mapping).
LINQ to XML: Manipulowanie dokumentami XML.
LINQ to DataSet: Operacje na danych w formacie DataSet (np. w aplikacjach wykorzystujących ADO.NET).
Przykładowe zapytanie LINQ:
int[] numbers = { 5, 12, 8, 130, 44 };
- jako metoda
var result = numbers.Where(n => n > 10).OrderBy(n => n);
- jako zmienna
var result = from n in numbers
where n > 10
orderby n
select n;
foreach (var number in result)
{
Console.WriteLine(number);
}
Zaletami LINQ są:
Zwięzłość i czytelność kodu: Dzięki składni przypominającej SQL, kod staje się bardziej zrozumiały i łatwiejszy do utrzymania.
Typowanie statyczne: LINQ korzysta z kompilatora C#, co pozwala na wykrywanie błędów już w czasie kompilacji.
Możliwość łączenia różnych operacji na danych: Można łączyć wiele operacji w jednym zapytaniu.
Mention the three main components of LINQ?
Three main components of LINQ are mentioned below.
Standard Query Operators
LINQ Providers
Language extensions
What are the types of LINQ?
LINQ to Dataset
LINQ to Objects
LINQ to Entities
LINQ to XML(XLINQ)
LINQ to SQL (DLINQ)
Agregowanie danych za pomocą Sum, Average, Max, Min
int[] numbers = { 5, 12, 8, 130, 44 };
var sum = numbers.Sum();
var average = numbers.Average();
var max = numbers.Max();
var min = numbers.Min();
Console.WriteLine($”Sum: {sum}”);
Console.WriteLine($”Average: {average}”);
Console.WriteLine($”Max: {max}”);
Console.WriteLine($”Min: {min}”);
Sprawdzanie warunków za pomocą Any i All
Sprawdzanie, czy w kolekcji znajduje się jakakolwiek liczba większa niż 10:
bool anyGreaterThan10 = numbers.Any(n => n > 10);
Console.WriteLine($”Any number greater than 10: {anyGreaterThan10}”);
Spłaszczenie kolekcji za pomocą SelectMany
Załóżmy, że mamy listę kolekcji liczb, a chcemy uzyskać jedną spłaszczoną listę wszystkich liczb:
csharp
Skopiuj kod
var listOfLists = new List<List<int>>()
{
new List<int> { 1, 2, 3 },
new List<int> { 4, 5, 6 },
new List<int> { 7, 8, 9 }
};</int></int></int></int>
var flattened = listOfLists.SelectMany(list => list);
foreach (var number in flattened)
{
Console.WriteLine(number);
}
Zastosowanie Distinct do usunięcia duplikatów
int[] numbers = { 1, 2, 2, 3, 4, 4, 5 };
var distinctNumbers = numbers.Distinct();
foreach (var number in distinctNumbers)
{
Console.WriteLine(number);
}
Przekształcanie danych z użyciem Select i obliczeń
int[] numbers = { 1, 2, 3, 4, 5 };
var squares = numbers.Select(n => n * n);
foreach (var square in squares)
{
Console.WriteLine(square);
}
Select
Operacja Select jest używana do wybierania i przekształcania elementów kolekcji. Zwykle używa się jej do wyciągania konkretnych danych z obiektów (np. wybierania właściwości obiektów) lub do przekształcania danych w nowy kształt.
Zadanie: Przekształcenie lub wybór danych z kolekcji.
Przykład: Jeśli mamy kolekcję obiektów, możemy użyć Select, aby wybrać tylko jedną z ich właściwości, lub obliczyć jakąś wartość na podstawie danych.
Wniosek: Select przekształca lub wybiera dane w zależności od tego, co chcemy uzyskać. Może to być pojedyncza wartość, obiekt, nowy obiekt, lub przekształcenie istniejącego.