Курс на Stepik
Обложка курса «Эффективные запросы LINQ в C#» на Stepik
999 ₽

Эффективные запросы LINQ в C# 0.000

Открыть на
STEPIK.ORG

LINQ для разработчиков уровня middle, которые пришли в C# из других языков: как устроены операторы, что происходит при перечислении, как запрос превращается в SQL и где LINQ стоит дорого. Двенадцать глав на C# 15 и .NET 11 вокруг одного рабочего проекта — сервиса сверки платежей.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Эффективные запросы LINQ в C#»Учеников на курсе 0
Сертификаты, выданные на курсе «Эффективные запросы LINQ в C#»Сертификатов выдано 0
Отзывы о курсе «Эффективные запросы LINQ в C#»Отзывов получено 0
Рейтинг курса «Эффективные запросы LINQ в C#»Рейтинг курса 0.000
Уроки в курсе «Эффективные запросы LINQ в C#»Количество уроков 109
Тесты в курсе «Эффективные запросы LINQ в C#»Количество квизов 56
Стоимость курса «Эффективные запросы LINQ в C#»Стоимость курса 999 ₽
Обновления курса «Эффективные запросы LINQ в C#»Обновления курса
Дата публикации курса «Эффективные запросы LINQ в C#»Дата публикации курса
Последнее обновление курса «Эффективные запросы LINQ в C#»Последнее обновление
Сложность normal

Содержание курса

Разделы в курсе «Эффективные запросы LINQ в C#» 12 разделов Уроки в курсе «Эффективные запросы LINQ в C#» 109 уроков Тесты в курсе «Эффективные запросы LINQ в C#» 56 тестов Последнее обновление курса «Эффективные запросы LINQ в C#» обн. 17 сентября 2026

LINQ как модель работы с данными

9 уроков
1. LINQ для тех, кто пришёл из другого языка
2. Проект Tally — сверка платежей как задача для LINQ
3. Окружение — .NET 11, C# 15 и структура решения
4. IEnumerable и IEnumerator — контракт, на котором стоит LINQ
5. Делегаты и лямбды — как LINQ принимает поведение
6. Extension-методы и устройство класса Enumerable
7. Синтаксис запросов и синтаксис методов
8. Первый конвейер сверки — Where, Select, OrderBy над выпиской
9. Практика — читаем и фильтруем settlement-файл

Отложенное выполнение и жизненный цикл запроса

9 уроков
1. Deferred execution — запрос как описание, а не результат
2. Streaming и buffering операторы
3. Материализация — ToList, ToArray, ToDictionary, ToLookup
4. Повторное перечисление и его цена
5. yield return — свои ленивые источники и операторы
6. Захват переменных и изменяемое состояние в конвейере
7. Исключения и ресурсы в ленивых конвейерах
8. Немедленные операторы — Count, Any, First, Single, Sum
9. Практика — потоковая обработка большого файла выписки

Фильтрация, проекция и упорядочивание

8 уроков
1. Where — предикаты, индекс, композиция условий
2. Select — проекция в записи, кортежи и анонимные типы
3. SelectMany — разворачивание вложенных коллекций
4. Сортировка — OrderBy, ThenBy, Order, стабильность и comparers
5. Take, Skip и окна — пагинация и срезы
6. Уникальность и объединение — Distinct, Index, Zip, Concat
7. Cast, OfType, AsEnumerable — статический тип последовательности
8. Практика — нормализация строк выписки в доменные записи

Группировка, агрегация и ключи

9 уроков
1. GroupBy — IGrouping, селекторы ключа, элемента и результата
2. Ключи группировки — анонимные типы, кортежи, records
3. Агрегаты — Sum, Min, Max, Average, Count, LongCount
4. MinBy, MaxBy, CountBy, AggregateBy — операторы вместо GroupBy
5. Aggregate — свёртка с seed и селектором результата
6. ToLookup против GroupBy против ToDictionary
7. Многоуровневая группировка и иерархические отчёты
8. IEqualityComparer и IComparer для LINQ
9. Практика — отчёт по комиссиям в Tally

Соединения и операции над множествами

9 уроков
1. Join — внутреннее соединение по ключу
2. GroupJoin — соединение с группировкой
3. LeftJoin, RightJoin и FullJoin — внешние соединения
4. DefaultIfEmpty и старые паттерны outer join
5. Except, Intersect, Union и их By-версии
6. Contains, Any в Where и производительность поиска
7. SequenceEqual и Zip — сравнение последовательностей
8. Алгоритм многоэтапной сверки
9. Практика — движок сверки Tally

Собственные операторы и расширение LINQ

9 уроков
1. Анатомия оператора LINQ
2. Операторы на yield — Windowed, Pairwise, RunningTotal
3. Extension-блоки C# 14 для доменных операторов
4. Операторы с состоянием — DistinctUntilChanged, TakeUntil
5. Обобщённые агрегаты и INumber
6. Операторы над IQueryable — почему yield не работает
7. Тестирование операторов на xunit v3
8. Оформление операторов как библиотеки
9. Практика — библиотека операторов Tally

Коллекции, типы и память в конвейерах

9 уроков
1. Что стоит за IEnumerable — списки, массивы и fast-path в LINQ
2. Records, структуры и value-типы в конвейере
3. Анонимные типы против records и кортежей
4. Неизменяемые и frozen-коллекции
5. Аллокации — делегаты, замыкания, итераторы, boxing
6. BenchmarkDotNet для LINQ
7. Когда LINQ проигрывает циклу
8. Строки и LINQ
9. Практика — профилируем конвейер сверки

Expression trees и IQueryable

10 уроков
1. Func и Expression — две формы одной лямбды
2. Строение дерева выражений
3. IQueryable и IQueryProvider
4. Композиция предикатов — And, Or, Not
5. Динамическая фильтрация по HTTP-параметрам
6. Динамическая сортировка и пагинация
7. Спецификации
8. ExpressionVisitor и переписывание деревьев
9. Границы Expression — что нельзя выразить
10. Практика — фильтры и спецификации для API Tally

LINQ и EF Core — перевод запросов в SQL

10 уроков
1. Tally.Data — EF Core 11 и SQLite
2. Как IQueryable превращается в SQL
3. Проекции в SQL
4. Client evaluation и server evaluation
5. Join, GroupBy и агрегаты на сервере
6. Include, проекция и split queries
7. Tracking и identity resolution
8. ExecuteUpdate и ExecuteDelete
9. Compiled queries, FromSql и композиция
10. Практика — репозиторий сверки на EF Core

Асинхронные потоки и параллельный LINQ

9 уроков
1. IAsyncEnumerable и await foreach
2. System.Linq.AsyncEnumerable в BCL
3. Асинхронные источники — постраничный API провайдера
4. CancellationToken в асинхронных конвейерах
5. EF Core и асинхронность
6. PLINQ — AsParallel и степень параллелизма
7. PLINQ — ловушки
8. Channels и LINQ — producer и consumer
9. Практика — асинхронный ingestion выписок

LINQ в архитектуре сервиса

9 уроков
1. Граница IQueryable
2. Read-модели и проекции
3. Пагинация — offset и keyset
4. Minimal API с фильтрами и сортировкой
5. Тестирование запросов
6. Экспорт — потоковые CSV и JSON
7. Правила сверки как данные
8. Наблюдаемость запросов
9. Практика — сборка Tally.Api end-to-end

Производительность, антипаттерны и код-ревью LINQ

9 уроков
1. Каталог антипаттернов
2. Анализаторы для LINQ
3. Читаемость конвейеров
4. Null-безопасность в LINQ
5. LINQ в горячих путях
6. LINQ над деревьями — System.Xml.Linq и JsonNode
7. Шпаргалка миграции на LINQ
8. Код-ревью LINQ
9. Практика — финальная сборка и ревью Tally