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

Преимущества использования linq

  • Знакомый синтаксис для написания запросов

  • Проверка на наличие ошибок синтаксиса и на безопасность типа при компиляции.

  • Улучшенная поддержка отладчика

  • Поддержка IntelliSense

  • Возможность напрямую работать с XML-элементами вместо создания контейнера XML-документа, что было необходимо при использовании объектной модели документа (DOM) W3C.

  • Изменение XML-документа в памяти, что более эффективно, чем простое использование XPath или XQuery.

  • Эффективные функции фильтрации, сортировки и группировки.

  • Согласованная модель для работы с источниками данными различных типов и форматов.

C# Language Enhancements that Support LINQ

Following are some new language structures that are added to C# 3.0 to support LINQ:

Language Structure

Description

query expressions

A declarative query syntax used to query data from any LINQ-enabled data source.

implicitly typed variables

A variable, specified with the modifier var, which enables the compiler to infer the type of the variable.

object initializers

Enables the initialization of objects without explicitly calling a constructor for the object.

anonymous types

Enables the compiler to create objects without requiring that you specify a named data type. The type name is only available to the compiler.

extension methods

Enables the extension of any existing type by associating static methods to the type.

lambda expressions

An inline expression or statement block that can be used wherever a delegate type is expected.

Расширения языка 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.

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