LINQ to Objects (C#)LINQ to Objects (C#)

Термин "LINQ to Objects" означает использование запросов LINQ с любой коллекцией IEnumerable или IEnumerable<T> напрямую, без привлечения промежуточного поставщика LINQ, API LINQ to SQL или LINQ to XML.The term "LINQ to Objects" refers to the use of LINQ queries with any IEnumerable or IEnumerable<T> collection directly, without the use of an intermediate LINQ provider or API such as LINQ to SQL or LINQ to XML. Вы можете выполнить запрос LINQ к любой перечислимой коллекции, такой как List<T>, Array или Dictionary<TKey,TValue>.You can use LINQ to query any enumerable collections such as List<T>, Array, or Dictionary<TKey,TValue>. Коллекция может быть определена пользователем или возвращена API .NET.The collection may be user-defined or may be returned by a .NET API.

В общем смысле LINQ to Objects представляет собой новый подход к коллекциям.In a basic sense, LINQ to Objects represents a new approach to collections. Раньше нужно было написать сложные циклы foreach, определяющие порядок извлечения данных из коллекции.In the old way, you had to write complex foreach loops that specified how to retrieve data from a collection. При использовании LINQ пишется декларативный код, описывающий, какие данные необходимо извлечь.In the LINQ approach, you write declarative code that describes what you want to retrieve.

Кроме того, запросы LINQ предлагают три основных преимущества по сравнению с традиционными циклами foreach:In addition, LINQ queries offer three main advantages over traditional foreach loops:

  • Они более краткие и удобочитаемые, особенно при фильтрации нескольких условий.They are more concise and readable, especially when filtering multiple conditions.

  • Они предоставляют широкие возможности фильтрации, упорядочивания и группировки с минимумом кода приложения.They provide powerful filtering, ordering, and grouping capabilities with a minimum of application code.

  • Они могут переноситься в другие источники данных практически без изменений.They can be ported to other data sources with little or no modification.

В общем, чем сложнее операция, которую нужно выполнить с данными, тем больше преимуществ вы получаете при использовании LINQ вместо традиционных способов итерации.In general, the more complex the operation you want to perform on the data, the more benefit you'll realize by using LINQ instead of traditional iteration techniques.

Целью этого раздела является демонстрация подхода LINQ с помощью нескольких примеров.The purpose of this section is to demonstrate the LINQ approach with some select examples. Он не претендует на исчерпывающий характер.It's not intended to be exhaustive.

В этом разделеIn This Section

LINQ и строки (C#)LINQ and Strings (C#)
Использование LINQ для запроса и преобразования строк и коллекций строк.Explains how LINQ can be used to query and transform strings and collections of strings. Ссылки на статьи, демонстрирующие эти принципы.Also includes links to articles that demonstrate these principles.

LINQ и отражение (C#)LINQ and Reflection (C#)
Ссылки на пример, демонстрирующий, как LINQ использует отражение.Links to a sample that demonstrates how LINQ uses reflection.

LINQ и каталоги файлов (C#)LINQ and File Directories (C#)
Использование LINQ для взаимодействия с файловыми системами.Explains how LINQ can be used to interact with file systems. Ссылки на статьи, демонстрирующие эти понятия.Also includes links to articles that demonstrate these concepts.

Практическое руководство. Выполнение запроса к ArrayList с помощью LINQ (C#)How to query an ArrayList with LINQ (C#)
Выполнение запроса ArrayList в C#.Demonstrates how to query an ArrayList in C#.

Практическое руководство. Добавление настраиваемых методов для запросов LINQ (C#)How to add custom methods for LINQ queries (C#)
Расширение набора методов, которые можно использовать для запросов LINQ путем добавления методов расширения в интерфейс IEnumerable<T>.Explains how to extend the set of methods that you can use for LINQ queries by adding extension methods to the IEnumerable<T> interface.

LINQ (C#)Language-Integrated Query (LINQ) (C#)
Ссылки на статьи, рассказывающие LINQ и содержащие примеры кода выполнения запросов.Provides links to articles that explain LINQ and provide examples of code that perform queries.