Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

LINQ-запросы и лямбда-выражения

Автор:   •  Март 14, 2019  •  Реферат  •  3,321 Слов (14 Страниц)  •  500 Просмотры

Страница 1 из 14

Практическая работа LINQ-запросы и лямбда-выражения

Реализация классов может предусматривать наличие конструктора с параметрами (в зависимости от вида запросов), но может быть выполнена с помощью свойств в форме {get; set;}.

Разрабатываемое приложение должно обрабатывать не менее шести запросов. Два запроса студент должен добавить самостоятельно. Запросы выполняются в форме LINQ to Objects. Тексты запросов на русском языке должны представляться на экране в виде списка, и каждый из запросов может быть выбран посредством выбора номера его позиции в списке. После выполнения запроса на экран снова выводится список для выбора другого запроса. Кроме запросов должны формироваться отчеты и справки.

Должны быть предусмотрены позиции для добавления и удаления и сохранения строк списка. Одна из позиций в списке должна обеспечивать «нормальный» выход из программы.

  1. Краткие теоретические пояснения

Файлы создают в Приложении «Блокнот». Строковые данные в кавычки не заключают. Все данные для одного объекта записывают в одной строке.

Пример оформления строк:

Помидор;83,5;1

Огурец;65;2

Морковь;35,2;3

В РФ дробная часть отделяется от целой с помощью запятой, поэтому для разграничения элементов при считывании их из файлов нельзя применять запятую. Можно применять пробел (если нет строк, состоящих из нескольких слов), точку с запятой и т. д.

При запуске приложения на экран выводится список задач с их названием. Для вывода списка задач, а также для реализации каждой задачи в списке (включая добавление и удаление элементов) оформляется подпрограмма. Ниже представлен пример (названия пунктов 1, 2 и остальных (до 8)):

[pic 1]

Главная программа имеет вид (все подпрограммы обработки запросов должны иметь атрибут static.):

static void Main(string[ ] args)

{

   int n = -1;

   while (true)

   {

       Frame();        // Вывод списка для выбора запроса

       if (! int.TryParse(Console.ReadLine(), out n))

       {

           Console.WriteLine("Это не цифра, нажмите на Enter");

           Console.ReadLine();

           Console.Clear();

           continue;

       }

       switch (n)

       {

           case 1:

               Console.Clear();

               // Вызов подпрограммы реализации запроса для позиции 1

               Console.WriteLine("Обработка запроса окончена,

нажмите любую клавишу");

               Console.ReadKey();

               Console.Clear();

               continue;

           // Обработка других запросов

           case 9:

               Console.WriteLine("Выход из программы: набрать - да,

нет - любые символы ");

               string st = Console.ReadLine();

               if (st == "да") Environment.Exit(0);

               else

               {

                   Console.Clear();

                   continue;

               }

               continue;   // Без этого оператора возникает ошибка

           default:          // Ошибка набора номера

               Console.Clear();

               Console.WriteLine("Введенного № нет, нажмите клавишу");

                Console.ReadKey();

                Console.Clear();

                continue;

        }

    }

}

Пусть класс имеет представленный ниже вид:

public class Vegetable        // Овощи

{

    public string name {get; set;}

    public int barcode {get; set;}

    public double price {get; set;}

}

Ниже приведен пример формирования обобщенного списка для одного класса.

class Program

{

    static void Main(string[ ] args)

    {

         List lst = new List();// Пустой список

        StreamReader FileIn = new StreamReader("C:\\ List.txt", Encoding.Default);

        Vegetable item = new Vegetable();// Пустой объект Vegetable

        string [ ] ms = new string[3];

        string str;

        while ((str = FileIn.ReadLine()) != null) // Пока не конец файла

        {

            ms = str.Split(';');                        // Расщепление на массив строк

            item.name=ms[0];                 // Формирование объекта Vegetable

...

Скачать:   txt (24.6 Kb)   pdf (132.8 Kb)   docx (23 Kb)  
Продолжить читать еще 13 страниц(ы) »
Доступно только на Essays.club