Изучение LINQ

Обзор

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

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

Что такое LINQ?

Из MSDN:

Проект LINQ - это кодовое название для... набора расширений для .NET Framework, который включает в себя интегрированные в язык запросы, наборы и операции преобразования. Он расширяет C# и Visual Basic с родным языком. синтаксисом для запросов и предоставляет класс библиотеки для использования этих > возможностей. возможностями.

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

Какие существуют разновидности LINQ?

В настоящее время существует несколько различных провайдеров LINQ, предоставляемых Microsoft:

  • Linq to Objects, который позволяет выполнять запросы к любому объекту IEnumerable.
  • Linq to SQL, который позволяет выполнять запросы к базе данных в объектно-ориентированной манере.
  • Linq to XML, который позволяет выполнять запросы, загружать, проверять, сериализовать и манипулировать XML-документами.
  • Linq to Entities по предложению Андрея
  • Linq to Dataset

Существует множество других, многие из которых перечислены здесь.

Какие преимущества?

  • Стандартизированный способ запроса к нескольким источникам данных
  • Безопасность запросов во время компиляции
  • Оптимизированный способ выполнения операций на основе множеств над объектами в памяти
  • Возможность отладки запросов

Так что же я могу сделать с помощью LINQ?

Chook предлагает способ вывода CSV-файлов Джефф показывает, как удалить дубликаты из массива Боб получает отличительный упорядоченный список из таблицы данных Marxidad показывает, как сортировать массив Дана получает помощь в реализации быстрой сортировки с помощью Linq

С чего начать?

Список ссылок из GateKiller' вопроса приведен ниже:
Скотт Гатри предоставляет введение в Linq в своем блоге. Обзор LINQ на MSDN

ChrisAnnODell предлагает ознакомиться с:

Что мне нужно для использования LINQ?

Linq в настоящее время доступен в VB.Net 9.0 и C# 3.0, поэтому вам понадобится Visual Studio 2008 или выше, чтобы получить все преимущества. (Вы всегда можете написать код в блокноте и скомпилировать его с помощью MSBuild).

Существует также инструмент под названием LinqBridge, который позволит вам выполнять Linq-подобные запросы в C# 2.0.

Советы и рекомендации по использованию LINQ

Этот вопрос содержит несколько хитрых способов использования LINQ.

Комментарии к вопросу (2)

Упомяните LINQ to Entities, поскольку ADO.NET Entity Framework будет важным модулем .NET.

Комментарии (0)

LINQ на несколько советов:

  • Применение фильтров перед соединения для повышения производительности запросов
  • Фильтрация запросов на LINQ, используя ссылку на объект сравнения
  • Применять агрегаты на пустой коллекции в LINQ к SQL-запросы
  • Задержка погрузки имущества в LINQ к SQL
  • Использовать табличное значение функции с безотложная загрузка включена
  • Положите соединяет в правильном порядке в LINQ для запроса объектов
  • Написать LINQ-запроса внутри цикла

http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp

Комментарии (0)

Возьмите книгу Linq in Action - это легкое чтение для книги по кодированию, и она действительно научит вас использовать Linq и новые возможности .NET 3.5, некоторые из крутых деталей, которые они добавили в язык.

Комментарии (0)

ИМХО, упускается из виду, но очень важное, преимущество заключается в эффективности кодирования по LINQ, электронная.G как много можно сделать, имея так мало кода. Лично я нахожу синтаксис запросов легко читать и понимать.

Комментарии (0)

Я думаю, ответ на вопрос "что ароматы LINQ-это там?” является неполным. Во-первых, вы можете создать свой собственный и"Вкус" по. Да, это сложная задача, но есть много различных реализаций технологии LINQ сейчас.

Здесь находится список имеющихся поставщики LINQ (плюс еще несколько ресурсов на обучение по LINQ) на Чарли Калверт's блоге: ссылки в LINQ.

А также есть отличная серия постов в блоге Мэтт Уоррен о том, как создать свой собственный поставщик LINQ: в LINQ: дом серии поставщик IQueryable

Комментарии (0)

Некоторые предостережения об использовании LINQ в SQL:

С Microsoft на самом деле убил LINQ к SQL?

Это LINQ к SQL ДОА?

Там's также некоторые споры о первой версии существо рамочного, в том числе ходатайства.

Комментарии (0)

Мои 2 цента , прочитать главы "в 11 выражений запросов и LINQ к объектам" и "12 LINQ, которая помимо коллекции" в "в C# в глубину" и книга, чтобы понять, как LINQ, которая работает.

Комментарии (0)

На Практике Для LINQ

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

https://github.com/walkhard/linq-exercises

Скачать из Git, открыть в Visual студии. Ваша задача-сделать тесты.

[раскрытие информации: я узнал некоторые LINQ из нее и я свой вклад в проект, так что да, я думаю, это'ы потрясающий, быстрый и эффективный способ выучить.]

Комментарии (0)