Основной учебник C# 14 и .NET 10 LTS
Начало работы
Введение
Язык C# и платформа .NET
Компиляция и выполнение программы
Запуск кода в онлайн-редакторе
Установка .NET SDK
Среда разработки
Создание консольного проекта
Запуск проекта
Первая программа
Вывод текста в консоль
Вывод с новой строки
Несколько команд вывода
Однострочные комментарии
Многострочные комментарии
Ошибки в коде
Литералы
Операнды и операторы
Переменные
Введение
Объявление переменной
Инициализация переменной
Имена переменных
Изменение значения
Несколько переменных
Копирование значения
Неинициализированная переменная
Повторное объявление
Константы
Зарезервированные слова
Автоматический вывод типа
Числа
Введение
Целые числа
Тип int
Другие целые типы
Беззнаковые целые типы
Дробные числа
Тип double
Тип float
Тип decimal
Запись целых чисел
Запись дробных чисел
Суффиксы числовых литералов
Разделение разрядов
Математические операции
Операции с переменными
Целочисленное деление
Деление дробных чисел
Отрицательные числа
Остаток от деления
Приоритет операций
Операции с равным приоритетом
Группирующие скобки
Сокращенные операции присваивания
Инкремент и декремент
Префиксная и постфиксная формы
Экспоненциальная запись
Переполнение целого числа
Бесконечность
Значение NaN
Преобразование числовых типов
Введение
Операции с разными типами
Неявное расширение типа
Преобразование целого в дробное
Преобразование дробного в целое
Явное приведение типа
Сужение типа
Потеря дробной части
Преобразование знаковых и беззнаковых чисел
Преобразование через класс Convert
Строки
Введение
Тип string
Строковые литералы
Пустая строка
Сложение строк
Добавление строки в переменную
Конкатенация строк и чисел
Интерполяция строк
Выражения внутри интерполяции
Специальные символы
Перевод строки
Экранирование символов
Дословные строки
Многострочные строки
Неизменяемость строк
Длина строки
Символы
Введение
Тип char
Символ и строка
Символ по индексу
Первый символ строки
Последний символ строки
Код символа
Символ по числовому коду
Цифровой символ в число
Число в символ цифры
Соседний символ
Логические значения
Введение
Тип bool
Значения true и false
Логическое И
Логическое ИЛИ
Логическое отрицание
Приоритет логических операторов
Группировка логических выражений
Условия
Введение
Конструкция if
Конструкция if-else
Операторы больше и меньше
Проверка на равенство
Проверка на неравенство
Сравнение переменных
Сравнение строк
Проверка символов
Условия с логическим И
Условия с логическим ИЛИ
Булево значение в условии
Ветвление else if
Вложенные условия
Конструкция switch
Несколько меток case
Ветка default
Проверка остатка от деления
Сравнение дробных чисел
Сравнение значения NaN
Тернарный оператор
Отсутствующие значения
Введение
Значение null
Строка со значением null
Проверка на null
Nullable-типы значений
Получение значения nullable-типа
Значение по умолчанию
Оператор ??
Оператор ??=
Безопасное обращение через ?.
Циклы
Введение
Цикл for
Счетчик цикла
Обратный счетчик
Изменение шага
Условие внутри цикла
Накопление результата
Перебор строки по индексам
Цикл foreach
Перебор символов строки
Инструкция break
Инструкция continue
Флаги в циклах
Цикл while
Цикл while без счетчика
Условие внутри while
Цикл do-while
Вложенные циклы
Сумма цифр через строку
Сумма цифр через деление
Практика на поиск ошибок
Функции
Введение
Создание функции
Вызов функции
Несколько вызовов
Один параметр
Несколько параметров
Возврат значения
Последовательный вызов
Тип результата
Функция без результата
Досрочный выход
Возврат по условию
Логический результат
Строковый результат
Необязательные параметры
Именованные аргументы
Параметр ref
Параметр out
Параметр in
Рекурсия
Практика на поиск ошибок
Область видимости
Введение
Переменная внутри условия
Переменная внутри цикла
Переменная внутри функции
Локальные переменные
Вложенные блоки
Одинаковые имена в разных блоках
Совпадение имени с параметром
Изменение внешней переменной
Область видимости счетчика
Время жизни переменной
Ввод данных
Введение
Ввод строки
Ввод слова
Ввод целого числа
Ввод дробного числа
Несколько введенных значений
Проверяемое преобразование целого
Проверяемое преобразование дробного
Ошибка ввода
Повторный ввод в цикле
Массивы
Введение
Создание массива
Элемент по индексу
Массив целых чисел
Массив дробных чисел
Массив строк
Массив символов
Длина массива
Пустой массив
Значения элементов по умолчанию
Задание длины массива
Последний элемент
Изменение элемента
Инкремент элемента
Условие с элементом массива
Условие и длина массива
Перебор элементов
Тип элемента в цикле
Перебор по индексам
Сумма элементов
Накопление результата
Условие в цикле
Подсчет элементов
Изменение массива в цикле
Копирование массива
Заполнение массива
Поиск в массиве
Сортировка массива
Обратный порядок
Списки
Введение
Создание списка
Элемент по индексу
Количество элементов
Пустой список
Список с начальными элементами
Последний элемент
Изменение элемента
Перебор элементов
Перебор по индексам
Накопление результата
Условие в цикле
Подсчет элементов
Добавление элементов
Заполнение списка в цикле
Новый список из старого
Объединение списков
Фильтрация списка вручную
Преобразование массива в список
Преобразование списка в массив
Вставка элементов
Удаление элементов
Очистка списка
Поиск элементов
Проверка элементов
Сортировка списка
Обратный порядок
Получение диапазона
Словари
Введение
Создание словаря
Пустой словарь
Пары ключей и значений
Чтение значения
Количество пар
Изменение значения
Добавление пары
Запись по новому ключу
Наличие ключа
Безопасное получение значения
Перебор пар
Разделение пары на ключ и значение
Получение всех ключей
Получение всех значений
Наличие значения
Накопление результата
Условие в цикле
Изменение значений в цикле
Добавление без перезаписи
Удаление ключа
Очистка словаря
Множества
Введение
Создание множества
Пустое множество
Количество элементов
Наличие элемента
Перебор множества
Повторяющиеся элементы
Добавление элемента
Удаление элемента
Очистка множества
Массив в множество
Список в множество
Множество в список
Объединение множеств
Пересечение множеств
Разность множеств
Симметрическая разность
Сравнение множеств
Подмножества и надмножества
Многомерные коллекции
Введение
Двумерные прямоугольные массивы
Элемент двумерного массива
Размеры двумерного массива
Перебор двумерного массива
Заполнение двумерного массива
Трехмерные массивы
Зубчатые массивы
Перебор зубчатого массива
Списки списков
Перебор списков списков
Словари со списками
Списки словарей
Заполнение вложенных коллекций
Пирамидки
Коллекции в функциях
Введение
Массив как параметр
Произвольное количество аргументов (params)
Список как параметр
Словарь как параметр
Множество как параметр
Изменение массива в функции
Изменение списка в функции
Возврат массива
Возврат списка
Возврат словаря
Несколько коллекций в параметрах
Вложенная коллекция как параметр
Лямбда-выражения
Введение
Создание лямбды
Вызов лямбды
Лямбда в переменной
Один параметр
Несколько параметров
Лямбда без параметров
Неявный результат
Блочное тело
Захват внешней переменной
Лямбда как аргумент
Типы Func и Action
Текстовые функции
Введение
Изменение регистра
Проверка пустой строки
Проверка начала и конца
Поиск в строке
Замена в строке
Вставка в строку
Удаление части строки
Обрезка пробелов
Выравнивание строки
Получение подстроки
Разбиение строки
Соединение строк
Сравнение строк
Проверка символов
Математические функции
Введение
Математические константы
Модуль числа
Знак числа
Минимум и максимум
Округление
Отбрасывание дробной части
Возведение в степень
Квадратный и кубический корень
Ограничение числа диапазоном
Тригонометрические функции
Логарифмы
Проверка специальных дробных значений
Случайные целые числа
Случайные дробные числа
Случайный элемент коллекции
Перемешивание коллекции
LINQ и функции коллекций
Введение
Сумма и среднее
Минимум и максимум
Сортировка
Обратный порядок
Уникальные элементы
Количество элементов
Поиск элемента
Первый и последний элементы
Единственный элемент
Проверка элементов
Фильтрация
Преобразование элементов
Пропуск элементов
Получение части последовательности
Объединение последовательностей
Пересечение последовательностей
Разность последовательностей
Добавление элемента в начало и конец
Группировка элементов
Преобразование в массив и список
Преобразование в словарь и множество
Цепочки операций LINQ
Исключения
Введение
Конструкция try-catch
Объект исключения
Сообщение об ошибке
Типы исключений
Несколько блоков catch
Общий обработчик
Блок finally
Выбрасывание исключения
Исключение внутри функции
Повторное выбрасывание
Дата и время
Введение
Тип DateTime
Текущая дата и время
Текущая дата
Создание даты из частей
Части даты
День недели
Форматирование даты
Преобразование строки в дату
Добавление времени
Сравнение дат
Тип TimeSpan
Создание промежутка
Части промежутка времени
Разность дат
Полная длительность промежутка
Файлы и папки
Введение
Пути к файлам
Составление пути
Части пути
Абсолютные и относительные пути
Проверка существования файла
Проверка существования папки
Чтение текстового файла
Чтение файла по строкам
Запись текстового файла
Запись строк
Добавление текста
Создание папки
Копирование файла
Перемещение файла
Удаление файла
Удаление папки
Получение списка файлов
Получение списка папок