Узнать о LINQ [закрыто]

обзор

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

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

Что такое LINQ?

Из MSDN :

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

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

Какие есть варианты LINQ?

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

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

Есть немало других, многие из которых перечислены здесь .

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

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

Итак, что я могу сделать с LINQ?

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

Когда начать?

Резюме ссылок с вопросом GateKiller в ниже :
Scott Guthrie обеспечивает введение в Linq в своем блоге
обзор An из LINQ на MSDN

ChrisAnnODell предлагает проверить:

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

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

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

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

У этого вопроса есть несколько хитрых способов использовать LINQ

19.08.2008 14:50:43
+1 за отличный пост и ссылку на блог ScottGu. Это отличный ресурс, и там, где я изначально изучал LINQ.
Evan Plaice 25.06.2010 05:02:26
Hooked On LINQ заходит на какой-то японский сайт. Гугл-переводчик рассказывает о римминге и других вещах, которые это nsfw. : SI не может редактировать его по какой-то причине.
Shane 25.01.2018 22:48:48
9 ОТВЕТОВ

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

6
28.08.2008 22:52:29

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

4
30.08.2008 02:02:43
Почему этот Delicious.com перенаправляет на расширение имени Dmail в магазине Chrome? oO Вы имеете в виду del.icio.us вместо этого?
Soner Gönül 4.03.2019 11:20:26

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

Microsoft действительно убила LINQ to SQL?

Является ли LINQ to SQL DOA?

Есть также некоторые противоречия по поводу первой версии Entity Framework , включая петицию .

3
23.05.2017 12:17:44

Несколько советов LINQ:

  • Примените фильтры перед объединением, чтобы повысить производительность запросов.
  • Фильтрация запросов LINQ с использованием сравнения ссылок на объекты
  • Применение агрегатов к пустым коллекциям в запросах LINQ to SQL
  • Задержка загрузки свойства в LINQ to SQL
  • Используйте табличные функции с активной загрузкой
  • Разместите соединения в правильном порядке в запросе LINQ to Objects
  • Составьте запрос LINQ внутри цикла

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

4
3.04.2009 20:14:24

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

Вот список существующих поставщиков LINQ (плюс еще несколько ресурсов по изучению LINQ) в блоге Чарли Калверта: Ссылки на LINQ .

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

3
6.11.2009 17:56:08

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

4
10.12.2009 21:22:22

Мои 2 цента, прочитайте главы «11 выражений запросов и LINQ to Objects» и «12 LINQ вне коллекций» в книге «C # in Depth», чтобы понять, как работает LINQ.

2
7.10.2015 11:19:26

Для практики Linq

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

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

Скачайте из git, откройте в Visual Studio. Ваша задача - сдать тесты.

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

0
28.01.2017 00:34:07