- •1. Жизненный цикл объекта.
- •2.Делегаты. Назначение, синтаксис объявления, использование делегата. Событийная модель.
- •3. События. Объявление события. Шаблон проектирования события в классе. Свойство для безопасной работы с событиями. Безопасный вызов события в многопоточном программировании.
- •4. Обобщенные классы. Объявление и детализация класса типами пользователя.
- •5. Обобщенные методы. Объявление и детализация методов типами пользователя.
- •6. Ограничения на параметры в обобщенных классах и функциях.
- •7. Типы, допускающие значение null
- •8. Коллекции и итераторы. Оператор yield
- •9.Потоки ввода/вывода в c#. Создание объекта потока и работа с ним. Текстовые, бинарные потоки, потоки со сжатием данных.
- •11. Исключения. Создание класса пользовательского исключения. Генерация и перехват исключения.
- •12. Рефлексия типов. Класс типа Type. Методы и свойства класса.
- •13. Сборки. Статическое и динамическое связывание сборок. Класс сборки Assembly.
- •14. Позднее связывание. Класс System.Activator. Создание экземпляра объекта путем позднего связывания. Вызов методов объекта путем позднего связывания.
- •15. Атрибуты. Назначение атрибутов. Базовый класс атрибута. Аннотирование класса атрибутами.
- •16. Расширяющие методы.
- •17. Анонимные методы. Объявление и использование.
- •18. Захват переменных анонимными методами. Цепочка вызовов.
- •20. Захват переменных в лямбда-выражениях. Рекурсивный вызов в лямбда-выражениях. Анонимная рекурсия.
- •21. Выражения и деревья выражений. Стандартные делегаты, используемые с выражениями и деревьями выражений.
- •22. Комбинирование выражений посредством класса InvocatedExpression.
- •23. Язык интегрированных запросов linq. Назначение, технические средства для реализации языка. Группы языка linq.
- •24. Linq to Objects. Вид запроса. Вызов цепочек расширяющих методов. Языковые конструкции для кодирования запроса. Отложенное и неотложенное выполнение запроса.
- •25. Конструкция from…select… Разделы конструкции. Условия. Проекция. Анонимные типы данных.
- •26. Конструкция from…group… Разделы конструкции. Условия. Ключи группировки. Получение ключа в результате-выборке.
- •28. Linq to Objects. Расширяющие методы для преобразования типов, операций со множествами, преобразования в один элемент.
- •29. Технология linq to sql. Назначение технологии. Класс контекста данных и основные атрибуты для создания контекста данных.
- •30. Создание и подключение класса контекста данных к базе данных. Шаблон программирования при добавлении данных в объект контекста данных.
28. Linq to Objects. Расширяющие методы для преобразования типов, операций со множествами, преобразования в один элемент.
Операции множеств используются для выполнения операций с множествами на последовательностях. Операция Distinct удаляет дублированные элементы из входной последовательности. Прототип:
public static IEnumerable<T> Distinct<T>(this IEnumerable<T> source);
Операция Union возвращает последовательность объединения множеств из двух исходных последовательностей. Операция Intersect возвращает пересечение множеств двух последовательностей. Операция Except возвращает последовательность, содержащую все элементы первой последовательности, которых нет во второй последовательности. Операции преобразования представляют простой и удобный способ преобразования последовательностей в другие типы коллекций. Операция Cast используется для приведения каждого элемента входной последовательности в выходную последовательность указанного типа. Прототип:
public static IEnumerable<T> Cast<T> (this IEnumerable source);
Операция Cast пытается привести каждый элемент входной последовательности к указанному типу. Если любой из этих элементов не может быть приведён к указанному типу, будет сгенерировано исключение InvalidCastException. Если существует вероятность присутствия разнотипных элементов в исходной коллекции, нужно применять вместо Cast операцию OfType. Операция OfType используется для построения выходной последовательности, содержащей только те элементы, которые могут быть успешно преобразованы к специфицированному типу. Операция AsEnumerable просто заставляет входную последовательность типа IEnumerable<T> быть возвращённой, как тип IEnumerable<T>. Также используются операции ToArray, ToList, ToDictionary, ToLookup.
Операции элементов позволяют извлекать элементы из входной последовательности. Операция DefaultEmpty возвращает последовательность, содержащую элемент по умолчанию, если входная последовательность пуста.
Следующие операции элементов позволяют извлекать отдельные элементы из входной последовательности. Операция First возвращает первый элемент последовательности или первый элемент последовательности, соответствующий предикату – в зависимости от использованного прототипа. Операция FirstOrDefault подобна First во всём, кроме поведения, когда элемент не найден. Операция Last возвращает последний элемент последовательности или последний элемент, соответствующий предикату – в зависимости от того, какой предикат использован. Операция LastOrDefault подобна Last во всем, за исключением поведения в случае, когда элемент не найден. Операция Single возвращает единственный элемент последовательности или единственный элемент последовательности, соответствующий предикату – в зависимости от используемого прототипа. Операция SingleOrDefault подобна Single, но отличается поведением в случае, когда элемент не найден. Операция ElementAt возвращает элемент из исходной последовательности по указанному индексу. Операция ElementAtOrDefault возвращает элемент из исходной последовательности, имеющий указанный индекс местоположения.