LINQ в C#

НАВИГАЦИЯ ПО СТРАНИЦЕ

операторы методов расширения Интеграция Типы запросов

Language Integrated Query (LINQ) — это набор возможностей языка C#, позволяющий делать запросы к различным источникам данных непосредственно из кода на C#. LINQ предоставляет удобный и выразительный способ работы с данными, включая коллекции объектов, базы данных, XML и другие источники данных.

Основные аспекты LINQ:

  1. Основные операторы:

    • LINQ предоставляет набор операторов запросов (Query Operators), таких как Where, Select, OrderBy, GroupBy и другие, для фильтрации, сортировки и агрегации данных.

       var query = from student in students
                  where student.Age > 18
                  orderby student.LastName
                  select student;
  2. Использование методов расширения:

    • Методы расширения LINQ, доступные через классы Enumerable и Queryable, позволяют выполнять те же запросы с использованием цепочки методов.

      var query = students.Where(student => student.Age > 18)
                          .OrderBy(student => student.LastName);
  3. Интеграция с различными источниками данных:

    • LINQ поддерживает работу с коллекциями объектов, базами данных (через LINQ to SQL, Entity Framework), XML-документами и другими источниками данных.

  4. Типы запросов:

    • LINQ поддерживает два основных типа запросов: запросы по методам (Method Syntax) и запросы по выражениям (Query Syntax). Оба типа предоставляют похожий функционал, но с разным синтаксисом.

      // Пример коллекции студентов
      List<Student> students = new List<Student>
      {
          new Student { Name = "Alice", Age = 20, Grade = "A" },
          new Student { Name = "Bob", Age = 22, Grade = "B" },
          new Student { Name = "Charlie", Age = 19, Grade = "A" },
      };
      
      // LINQ запрос - выбор студентов старше 18 лет и сортировка по имени
      var query = from student in students
                  where student.Age > 18
                  orderby student.Name
                  select student;
    • Этот пример демонстрирует LINQ запрос, который выбирает студентов старше 18 лет и сортирует их по имени.

LINQ предоставляет удобные средства для работы с данными непосредственно из кода на C#, позволяя выполнять запросы к различным источникам данных с помощью выразительного и удобного синтаксиса.