LINQ to Objects

Обновлен: Ноябрь 2007

Термином "LINQ to Objects" называют использование запросов LINQ непосредственно с коллекциями IEnumerable или IEnumerable<T> без промежуточных поставщиков LINQ или API-интерфейсов, таких как LINQ to SQL или LINQ to XML. LINQ можно использовать для запроса любых перечислимых коллекций, таких как List<T>, Array или Dictionary<TKey, TValue>. Коллекция может быть определенной пользователем или возвращенной API .NET Framework.

По сути, LINQ to Objects представляет новый подход к коллекциям. Раньше нужно было писать сложные циклы foreach, которые определяли способ извлечения данных из коллекции. При подходе LINQ создается декларативный код с описанием необходимых извлекаемых данных.

Кроме того, запросы LINQ имеют три основных преимущества перед традиционными циклами foreach.

  1. Они более компактные и удобочитаемые, особенно при фильтрации по нескольким условиям.

  2. Они предоставляют мощные возможности фильтрации, упорядочивания и группировки с минимальным объемом кода приложения.

  3. Они могут быть перенесены на другие источники данных с минимальными изменениями или без изменений.

В общем случае, чем более сложные операции следует выполнить над данными, тем больше преимуществ от применения LINQ вместо использования традиционных методов итераций.

В этом разделе демонстрируется подход LINQ в нескольких выбранных примерах. Он не является исчерпывающим.

Содержание

  • Практическое руководство. Выполнение запроса к ArrayList с помощью LINQ
    Демонстрируется выполнение запроса к ArrayList в Visual Basic и C#.

  • LINQ и строки
    Содержи описание использования LINQ для запросов и преобразования строк и коллекций строк. Также содержит ссылки на разделы с демонстрацией этих принципов.

  • LINQ и каталоги файлов
    Содержит описание использования LINQ для взаимодействия с файловыми системами. Также содержит ссылки на разделы с демонстрацией эти принципов.

  • LINQ и отражение
    Содержит ссылки на примеры с демонстрацией использования отражения LINQ.

  • LINQ
    Содержит ссылки на разделы, объясняющие LINQ, и включает примеры кода для выполнения запросов.