Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_for_Beginners.doc
Скачиваний:
35
Добавлен:
13.02.2015
Размер:
2.39 Mб
Скачать

Расширения языка c# для поддержки linq

Несколько новых языковых структур, добавленных в C# 3.0 для поддержки LINQ.

Языковая структура

Описание

выражения запросов

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

неявно типизированные переменные

Модификатор var в объявлении переменной позволяет компилятору определять ее тип.

инициализаторы объектов

Позволяют инициализировать объект без явного вызова конструктора.

анонимные типы

Позволяют компилятору создавать объекты без указания именованного типа данных. Имя типа доступно только компилятору.

методы расширения

Позволяют расширить любой существующий тип, связав его со статическими методами.

лямбда-выражения

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

Writing linq Queries

Whether you are working with ADO.NET datasets, SQL databases, .NET collections, or XML documents, the basic structure of a LINQ query expression is the same. A query expression is starts with a from clause, followed by query clauses such as where, orderby, select, and so on. The complete expression is stored in a query variable which can be executed or modified any number of times. Query expression syntax resembles the syntax of SQL. For example, you could write a LINQ query that returns all students in a students database that have science as their major, by using the following syntax:

IEnumerable<Student> studentQuery =

from student in studentApp.students

where student.Major == "Science"

select student;

Linq to Objects

The phrase, LINQ to Objects, refers to the use of LINQ to query in-memory data collections such as the classes in the System.Collections and System.Collections.Generic namespaces. These classes include ArrayList, List<T>, Dictionary<K,T>, and so on. You can query arrays because they implicitly support IEnumerable<T>.

You can even import a text file into enumerable data structures and run queries to filter or sort its contents.

Написание запросов linq

Основная структура выражения запроса LINQ остается неизменной независимо от источника данных: набор данных ADO.NET, база данных SQL, коллекции .NET Framework или XML-документы. Выражение запроса начинается с предложения from, за которым следуют другие выражения запроса, такие как where, orderby, select и так далее. В переменной запроса хранится полное выражение запроса, который может быть выполнен или изменен любое число раз. Синтаксис выражения запроса похож на синтаксис SQL. Например, можно написать запрос LINQ, возвращающий всех студентов в базе students со специализацией science, используя следующий синтаксис:

IEnumerable<Student> studentQuery =

from student in studentApp.students

where student.Major == "Science"

select student;

Linq to Objects

Термин LINQ to Objects относится к использованию LINQ для запроса коллекций данных в памяти, таких как классы в пространствах имен System.Collections и System.Collections.Generic. Эти классы включают ArrayList, List<T>, Dictionary<K,T> и так далее. Можно выполнять запросы к массивам, поскольку они неявно поддерживают универсальный интерфейс IEnumerable<T>.

Можно даже импортировать текстовый файл в перечислимую структуру и выполнять запросы с фильтрацией и сортировкой содержимого.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]