Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Углублённое изучение ООП. Использование LINQ

Тип: лабораторная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Понятие технологии LINQ, использование запросов и формализация задачи. Пример алгоритма добавления поля на главную форму с использованием функции LINQ Select. Создание дополнительного списка с альбомами выбранного исполнителя, применяя функцию LINQ Where.
Краткое сожержание материала:

МИНОБР НАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» им. В.И.УЛЬЯНОВА (ЛЕНИНА)» (СПбГЭТУ)

ФАКУЛЬТЕТ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И ИНФОРМАТИКИ

КАФЕДРА СИСТЕМ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ

ЛАБОРАТОРНАЯ РАБОТА

по учебной дисциплине «Паттерны проектирования приложений»

на тему «Углублённое изучение ООП»

Часть 1-2 «Использование LINQ»

Выполнили:

Соловьёв С.П.

Ярославцева В.А.

Группа: 9301

Факультет: КТИ

Проверил: Новакова Н.Е.

Санкт-Петербург 2012

Цель работы: Научиться пользоваться LINQ и его основными функциями.

Общие сведения

LINQ (Language-Integrated Query) -- это название набора технологий, основанных на интеграции возможностей запроса непосредственно в язык C# (а также в Visual Basic и, возможно, в любые другие языки .NET).

Для разработчиков, создающих запросы, наиболее очевидная "встроенная в язык" часть LINQ -- это выражение запросов. При помощи синтаксиса запросов можно выполнять сложные операции фильтрация, упорядочения и группировки в источниках данных, причем для этого требуется крайне небольшой объем кода.

Запрос представляет собой выражение, получающее данные из источника данных. Запросы обычно выражаются на специальном языке запросов.

Подготовка к выполнению лабораторной работы

1. Откройте Visual Studio.

2. Создайте новый проект типа Windows Forms Application с названием OopLabs.Linq.

3. Добавьте в проект файл Artist.cs.

4. Изучите описание класса Album. Класс хранит информацию о музыкальном альбоме:

имя исполнителя, название, дату выхода. Кроме того, определение класса включает статический метод Album.GetAlbums(), возвращающий список некоторых альбомов нескольких групп.

Формализация задачи

Рисунок 1.

Упражнение 1 -- Вывод списка групп

В упражнении 1 необходимо добавить на главную форму поле (список), куда будут выводиться список исполнителей. Для отображения коллекции нужно использовать функцию LINQ Select().

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace OopLabs.Linq

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

listBox1.DataSource = Album.GetAlbums()

Select(album => album.Artist)

Distinct()

ToList();

}

}

}

Рисунок 2. Список исполнителей

Упражнение 2 -- Вывод альбомов для групп

В этом упражнении в форме необходимо создать ещё один список, в который будут выведены альбомы выбранного исполнителя. Для реализации задачи следует использовать функцию LINQ Where.

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace OopLabs.Linq

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

listBox1.DataSource = Album.GetAlbums()

Select(album => album.Artist)

Distinct()

ToList();

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

listBox2.DataSource = Album.GetAlbums()

Where(album => (listBox1.SelectedItem.ToString() == album.Artist))

ToList();

}

}

}

Рисунок 3. Список альбомов исполнителя

запрос функция linq select

Рисунок 4. Список альбомов исполнителя

Упражнение 3 -- Сортировка списков исполнителей и альбомов

В этом упражнении необходимо сделать так, чтобы альбомы сортировались по дате выхода от более поздних к более ранним. Для выполнения задачи используется функция OrderByDescending(). Так же, используя функцию OrderBy(), необходимо сортировать список исполнителей в алфавитном порядке.

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace OopLabs.Linq

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

listBox1.DataSource = Album.GetAlbums()

Select(album => album.Artist)

OrderBy(album =>album)

Distinct().ToList();

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

listBox2.DataSource = Album.GetAlbums()

Where(album => (listBox1.SelectedItem.ToString() == album.Artist))

OrderByDescending(album=>album.Date)

ToList();

}

}

}

Рисунок 5. Вывод отсортированных исполнителей и альбомов

Вывод: В результате выполнения лабораторной работы мы ознакомились с LINQ и применением его основных команд, таких как запрос информации, вывод списков по определённым критериям и сортировка результатов.

Выполнены три упражнения, по каждому из них представлен листинг программы и результаты её работы.

Размещено на Allbest.ru

...
Другие файлы:

LINQ Unleashed: for C#
Microsoft’s highly anticipated LINQ query technology makes it easy to retrieve any information programmatically from any data source, no matter where...

Programming Microsoft LINQ in Microsoft .NET Framework 4
With LINQ, you can query data from a variety of sources — including databases, objects, and XML files — directly from Microsoft Visual Basic® or C#. G...

Pro LINQ: Language Integrated Query in C# 2010
LINQ is the part of the .NET Framework that provides a generic approach to querying data from different data sources. It has quickly become the next m...

LINQ Карманный справочник
Справочник посвящен технологии LINQ — новой функциональной возможности языка C# 3.0 и платформы Framework, которая позволяет писать безопасные структу...

WCF 4.0 Multi-tier Services Development with LINQ to Entities
WCF is the Microsoft model for building services, whereas LINQ to Entities is the Microsoft ORM for accessing underlying data storage. Want to learn b...