Синтаксис запросов в C# — это мощная функция, позволяющая извлекать, фильтровать и манипулировать данными из различных источников. Независимо от того, работаете ли вы с базами данных, коллекциями или другими структурами данных, понимание и освоение синтаксиса запросов имеет важное значение. В этой статье блога мы рассмотрим несколько методов и приемов использования синтаксиса запросов на C#, а также приведем примеры кода, которые помогут вам легче понять концепции.
- LINQ (интегрированный язык запросов):
LINQ — это мощный язык запросов, который интегрирует возможности запросов непосредственно в C#. Он обеспечивает единый способ запроса различных источников данных, таких как массивы, списки, базы данных, XML и т. д. Вот пример использования LINQ для запроса списка целых чисел и получения четных чисел: 
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;
foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}
- Лямбда-выражения.
Лямбда-выражения предоставляют краткий способ написания встроенных функций или делегатов. Они обычно используются вместе с LINQ для выполнения сложных запросов. Вот пример использования лямбда-выражения для фильтрации списка строк по условию: 
List<string> names = new List<string> { "John", "Jane", "Alice", "Bob" };
var filteredNames = names.Where(name => name.Length > 3);
foreach (var name in filteredNames)
{
    Console.WriteLine(name);
}
- Методы расширения.
Методы расширения позволяют добавлять новые функции к существующим типам без изменения их исходного кода. Их можно использовать для расширения возможностей запросов. Вот пример метода расширения, который фильтрует список объектов по определенному свойству: 
public static class Extensions
{
    public static IEnumerable<T> FilterByProperty<T>(this IEnumerable<T> source, Func<T, bool> predicate)
    {
        foreach (var item in source)
        {
            if (predicate(item))
            {
                yield return item;
            }
        }
    }
}
List<Person> people = GetPeople();
var adults = people.FilterByProperty(p => p.Age >= 18);
foreach (var adult in adults)
{
    Console.WriteLine(adult.Name);
}
Синтаксис запросов в C# предлагает широкий спектр методов и приемов для эффективного извлечения данных и управления ими. Овладев этими методами, такими как использование LINQ, лямбда-выражений и методов расширения, вы сможете писать чистый и лаконичный код, который с легкостью выполняет сложные запросы. Включите эти методы в свой арсенал программирования, чтобы раскрыть весь потенциал синтаксиса запросов в C#.