LINQ (Language Integrated Query) — это мощная функция C#, обеспечивающая стандартизированный синтаксис запросов для запроса и управления данными. Это позволяет разработчикам писать выразительный и компактный код для операций запроса данных. В этой статье мы рассмотрим несколько часто используемых методов LINQ на C#, а также приведем примеры кода, которые помогут вам понять и использовать возможности LINQ.
- Select:
Метод Select используется для проецирования и преобразования элементов из источника данных. Это позволяет вам определить логику преобразования, которая применяется к каждому элементу исходной коллекции. Вот пример:
var numbers = new[] { 1, 2, 3, 4, 5 };
var squares = numbers.Select(n => n * n);
foreach (var square in squares)
{
Console.WriteLine(square);
}
- Where:
Метод Where используется для фильтрации элементов из источника данных на основе заданного условия. Это позволяет вам получить только те элементы, которые удовлетворяют заданному предикату. Вот пример:
var numbers = new[] { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
- OrderBy:
Метод OrderBy используется для сортировки элементов в порядке возрастания на основе указанного ключа. Он позволяет определить ключ, по которому должна выполняться сортировка. Вот пример:
var numbers = new[] { 5, 2, 4, 1, 3 };
var sortedNumbers = numbers.OrderBy(n => n);
foreach (var number in sortedNumbers)
{
Console.WriteLine(number);
}
- GroupBy:
Метод GroupBy используется для группировки элементов в источнике данных на основе указанного ключа. Это позволяет группировать элементы, имеющие общее свойство или атрибут. Вот пример:
var persons = new[]
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 25 },
};
var groupedPersons = persons.GroupBy(p => p.Age);
foreach (var group in groupedPersons)
{
Console.WriteLine($"Age: {group.Key}");
foreach (var person in group)
{
Console.WriteLine($"- {person.Name}");
}
}
- Any:
Метод Any используется для проверки того, удовлетворяет ли какой-либо элемент в источнике данных заданному условию. Он возвращает true, если хотя бы один элемент удовлетворяет условию; в противном случае он возвращает false. Вот пример:
var numbers = new[] { 1, 2, 3, 4, 5 };
var hasEvenNumber = numbers.Any(n => n % 2 == 0);
Console.WriteLine(hasEvenNumber); // Output: True
- All:
Метод All используется для проверки того, все ли элементы в источнике данных удовлетворяют заданному условию. Он возвращает true, если все элементы удовлетворяют условию; в противном случае он возвращает false. Вот пример:
var numbers = new[] { 1, 2, 3, 4, 5 };
var allEvenNumbers = numbers.All(n => n % 2 == 0);
Console.WriteLine(allEvenNumbers); // Output: False