- •1. Введение в ооп
- •1.1. Этапы развития технологий программирования
- •1.2. Введение в ооп
- •2. Понятие класса и объекта класса. Инкапсуляция в c#
- •2.1. Понятие класса и объекта класса. Создание объектов. Данные и методы класса
- •2.2. Передача параметров в методы класса
- •2.3. Конструкторы и деструкторы
- •2.4. Инкапсуляция в c#
- •3. Индексаторы и свойства
- •3.1. Индексаторы
- •3.2. Свойства
- •4. Наследование в c#
- •5. Полиморфизм в c#. Интерфейсы
- •5.1. Виртуальные методы и их переопределение
- •5.2. Применение абстрактных классов
- •5.3. Интерфейсы
- •6. Система типов языка c#
- •7. Структуры и перечисления
- •7.2. Тип структур
- •8. Операторы и управляющие конструкции языка c#
- •8.1. Арифметические операторы
- •8.2. Операторы отношения и логические операторы
- •8.3. Оператор присваивания
- •8.4. Оператор ?
- •8.5. Управляющие операторы
- •9. Массивы и строки
- •9.1. Массивы в c#
- •9.1.1. Одномерные массивы
- •9.1.2. Многомерные массивы
- •9.1.3. Ступенчатые массивы
- •9.2. Строки
- •9.2.1. Постоянство строк
- •10. Платформа .Net. Основные понятия и принципы работы
- •11. Пространства имен. Сборки
- •11.1. Пространства имён
- •11.2. Сборки
- •12. Время жизни переменных и область видимости переменных. Оператор new и сборка мусора
- •12.2. Финализация объектов
- •12.3. Создание высвобождаемых объектов
- •13. Исключения. Генерация и обработка
- •13.1. Основы обработки исключительных ситуаций
- •13.2. Применение пары ключевых слов try и catch
- •13.3. Генерирование исключений вручную
- •13.4. Использование блока finally
- •13.5. Класс Exception и получение производных классов
- •13.6. Ключевые слова checked и unchecked
- •14. Обобщения (шаблоны) и их применение в языке c#
- •15. Основные классы коллекций объектов
- •15.1. Интерфейсы необобщенных коллекций
- •15.1.1. Интерфейс iCollection
- •15.1.2. Интерфейс iList
- •15.1.3. Интерфейс iDictionary
- •16. Использование linq для работы с коллекциями
- •16.1. Простой запрос
- •16.2. Общая форма запроса
- •16.3. Сортировка результатов запроса с помощью оператора orderby
- •16.4 Операторы group, into, let и join
- •16.5. Методы запроса
- •16.6. Формирование запроса с помощью методов запроса
- •Заключение
- •Оглавление
- •1. Введение в ооп 3
- •1.1. Этапы развития технологий программирования 3
- •1.2. Введение в ооп 11
- •394026 Воронеж, Московский просп., 14
16.5. Методы запроса
Другой способ формирования запросов состоит в использовании методов запроса, которые могут вызываться для любого перечислимого объекта.
Методы запроса определяются в классе System.Linq.Enumerable и реализуются в виде методов расширения функций обобщенной формы интерфейса IEnumerable<T>.
В классе Enumerable предоставляется немало методов запроса, но основными считаются те методы, которые соответствуют описанным ранее операторам запроса. Эти методы перечислены в табл. 6 вместе с соответствующими операторами запроса. Следует, однако, иметь в виду, что эти методы имеют также перегружаемые формы, а здесь они представлены лишь в самой простой своей форме. Но именно эта их форма используется чаще всего.
Таблица 6.
Основные методы запроса
Оператор запроса |
Эквивалентный метод запроса |
select |
Select(selector) |
where |
Where(predicate) |
orderby |
OrderBy(keySelector) или OrderByDescending(KeySelector) |
join |
Join(inner, outerKeySelector, innerKeySelector, result Selector) |
group |
GroupBy(keySelector) |
16.6. Формирование запроса с помощью методов запроса
Переделаем пример простого запроса, представленный в начале главы, с использованием методов запроса Select() и Where():
using System;
using System.Linq;
class SimpQuery {
static void Main() {
int[] nums = { 1, -2, 3, 0, M, 5 };
// Использовать методы Where() и Select() для
// формирования простого запроса.
var posNums = nums.Where(n => n > 0).Select(r => r);
Console.Write("Положительные значения из массива nums: ");
// Выполнить запрос и вывести его результаты.
foreach(int i in posNums) Console.Write(i + " ");
Console.WriteLine ();
}
}
Заключение
C# является основным языком разработки программ на платформе .NET корпорации Microsoft. В нем удачно сочетаются испытанные средства программирования с самыми последними новшествами и предоставляется возможность для эффективного и очень практичного написания программ, предназначенных для вычислительной среды современных предприятий. Это, без сомнения, один из самых важных языков программирования XXI века.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Шилдт Г. Полное руководство C#4.0. / Г. Шилдт. – М.: ООО «И.Д. Вильямс», 2011. – 1056 с.
Троэлсен Э. Язык программирования С# 2010 и платформа .NET 4.0 / Э. Троэлсен. – М.: ООО «И.Д. Вильямс», 2011. – 1392 с.
Kumar S.N. LINQ quickly / S.N. Kumar. – Packt Publishing, 2007. – 250 c.
Страуструп Б. Дизайн и эволюция C++ / Б. Страуструп. – СПб: Питер, 2006. – 445 с.
Clark D. Beginning C# Object-Oriented Programming / D. Clark – Apress, 2011. – 371 c.
Либерти Дж. Программирование на C# / Дж. Либерти. – М.: Символ-плюс, 2003. – 690 c.
Петцольд Ч. Программирование в тональности С# / Ч. Петцольд. – М.: ИТД «Русская редакция», 2004. – 503 с.
Рихтер Дж. Программирование на платформе Microsoft.NET Framework / Дж. Рихтер. – М.: ИТД «Русская редакция», 2003. – 512 с.
Павловская Т.А. C#. Программирование на языке высокого уровня / Т.А. Павловская. – СПб: Питер, 2007. – 432 с.
Richter J. CLR via C# 3rd Edition / J. Richter – Ms Press – 896 с.
Watson K. Beginning Visual C# 2010 / K. Watson, C. Nagel, J.H. Pedersen – wrox – 1080 c.