Использование LINQ для доступа к данным в C# 2010

Автор: Topol Пятница, Июнь 8th, 2012 Нет комментариев

Рубрика: Программирование

LINQ – это относительно новый набор технологий, позволяющий встроить язык запросов непосредственно в C# (си шарп). Программисты используют основную его часть — выражения запросов, предназначенные для извлечения данных из указанного источника и их преобразования. Синтаксис языка внешне немного напоминает другой язык запросов – SQL, одна LINQ является более универсальным и единообразным.
Ниже представлены официально принятые названия разновидностей LINQ в зависимости от целевого источника отбора:

  1. LINQ to SQL – базы данных
  2. LINQ to XML — Документы XML
  3. LINQ to DataSet — наборы данных ADO.NET
  4. LINQ to Objects — коллекции, файлы и строки

Запрос – это та самая конструкция, с помощью которой можно извлечь нужные данные. Каркас выражения состоит из трех основных операторов: from (откуда выбирать), where (условие отбора) и select (выбор с указанием типов данных). Результат запроса записывается в универсальную переменную типа var, способную хранить различные типы данных. Этот набор перечисляемый, за что отвечает интерфейс I Enumerable<>. Но мы не можем напрямую вывести значения этой переменной, поэтому нужно обращаться к ней с помощью конструкции foreach. Рассмотрим на примере:

		int[] chisla = new int[4] { 14, 62, 15, 1 };

            var zapros =
                from numb in chisla
                where (numb % 2) == 0
                select numb;

            foreach (int num in zapros)
            {
                Console.Write("четное число: [{0}] ", num);
            }

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

  1. from numb in chisla — Вводится дополнительная переменная numb для перебора всех значений в массиве chisla. Эта переменная также называется переменной диапазона. Сам массив выступает источником данных.
  2. where (numb % 2) == 0 – Указывается условие отбора, представляющее собой фильтр в виде логического выражения.
  3. select numb; — Непосредственно сам отбор

Запросы могут быть динамическими, то есть формироваться по мере выполнения программы, в то время как статические запросы доступны во время компиляции. Например, условие отбора может записываться как строковое значение, например, Where(«numb = 1″), и также может выглядеть выражение внутри Select.
LINQ-запросы можно использовать для обращения к базам данных, XML-документам, наборам данных и ко всем коллекциям, поддерживающим интерфейс IEnumerable. Программа должна разрабатываться на платформе не моложе .NET Framework 3.5.
Класс System.Linq.Enumerable включает несколько расширяющих методов и операторов – например, нахождение минимума (Min), максимума (Max), среднего значения (Average), подсчет количества значений (Count) и т.п. Например, чтобы упорядочить значения по возрастанию, использовано расширение OrderBy:

		int[] numbrs = { 10, 83, 25, 39, 112, 26 };
            var result = numbrs.OrderBy(g => g);
            foreach (var x in result)
            {
                System.Console.Write(x + " ");
            }

Источник: cisharp.com

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты