Углублённое изучение ООП. Использование LINQ
МИНОБР
НАУКИ РОССИИ
ФЕДЕРАЛЬНОЕ
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО
ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ «ЛЭТИ» им. В.И.УЛЬЯНОВА (ЛЕНИНА)» (СПбГЭТУ)
ФАКУЛЬТЕТ
КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И ИНФОРМАТИКИ
КАФЕДРА
СИСТЕМ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ
ЛАБОРАТОРНАЯ
РАБОТА
по
учебной дисциплине «Паттерны проектирования приложений»
на
тему «Углублённое изучение ООП»
Часть
1-2 «Использование LINQ»
Выполнили:
Соловьёв С.П.
Ярославцева В.А.
Группа: 9301
Факультет: КТИ
Проверил: Новакова Н.Е.
Санкт-Петербург
2012
Цель работы: Научиться
пользоваться LINQ и его
основными функциями.
Общие
сведения
(Language-Integrated Query) - это название
набора технологий, основанных на интеграции возможностей запроса
непосредственно в язык C# (а также в Visual Basic и, возможно, в любые другие
языки .NET).
Запрос представляет собой выражение, получающее
данные из источника данных. Запросы обычно выражаются на специальном языке
запросов.
Подготовка к выполнению лабораторной
работы
1. Откройте Visual Studio.
. Создайте новый проект типа Windows Forms
Application с названием OopLabs.Linq.
. Добавьте в проект файл Artist.cs.
. Изучите описание класса Album. Класс хранит
информацию о музыкальном альбоме:
имя исполнителя, название, дату выхода. Кроме
того, определение класса включает статический метод Album.GetAlbums(),
возвращающий список некоторых альбомов нескольких групп.
Формализация
задачи
Рисунок 1.
Упражнение
1 - Вывод списка групп
В упражнении 1 необходимо добавить на главную
форму поле (список), куда будут выводиться список исполнителей. Для отображения
коллекции нужно использовать функцию LINQ Select().
Листинг программы
using
System;
using
System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;System.Windows.Forms;OopLabs.Linq
{partial class Form1 : Form
{Form1()
{();.DataSource =
Album.GetAlbums()(album => album.Artist)()();
}
}
Рисунок 2. Список исполнителей
Упражнение
2 - Вывод альбомов для групп
В этом упражнении в форме необходимо создать ещё
один список, в который будут выведены альбомы выбранного исполнителя. Для
реализации задачи следует использовать функцию LINQ
Where.
Листинг программы
using
System;
using
System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;System.Windows.Forms;OopLabs.Linq
{partial class Form1 : Form
{Form1()
{();.DataSource =
Album.GetAlbums()(album => album.Artist)()();
}void
listBox1_SelectedIndexChanged(object sender, EventArgs e)
{.DataSource =
Album.GetAlbums()(album => (listBox1.SelectedItem.ToString() ==
album.Artist))();
}
}
}
Рисунок 3. Список альбомов исполнителя
запрос функция linq select
Рисунок 4. Список альбомов исполнителя
Упражнение
3 - Сортировка списков исполнителей и альбомов
В этом упражнении необходимо сделать так, чтобы
альбомы сортировались по дате выхода от более поздних к более ранним. Для
выполнения задачи используется функция OrderByDescending().
Так же, используя функцию OrderBy(),
необходимо сортировать список исполнителей в алфавитном порядке.
Листинг
программы
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;System.Windows.Forms;OopLabs.Linq
{partial class Form1 : Form
{Form1()
{();.DataSource =
Album.GetAlbums()(album => album.Artist)(album =>album)().ToList();
}void
listBox1_SelectedIndexChanged(object sender, EventArgs e)
{.DataSource =
Album.GetAlbums()(album => (listBox1.SelectedItem.ToString() ==
album.Artist))(album=>album.Date)();
}
}
}
Рисунок 5. Вывод отсортированных исполнителей и
альбомов
Вывод: В
результате выполнения лабораторной работы мы ознакомились с LINQ
и применением его основных команд, таких как запрос информации, вывод списков
по определённым критериям и сортировка результатов.
Выполнены три упражнения, по каждому из них
представлен листинг программы и результаты её работы.