Курс на 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 ↗