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

"LINQ to Objects" という用語は、LINQ to SQLLINQ to XML などの中間 LINQ プロバイダーまたは API を使用せずに、LINQ クエリを任意の IEnumerable コレクションまたは IEnumerable<T> コレクションと直接組み合わせて使用することを意味します。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>ArrayDictionary<TKey,TValue> などの任意の列挙可能なコレクションを照会できます。You can use LINQ to query any enumerable collections such as List<T>, Array, or Dictionary<TKey,TValue>. このコレクションは、ユーザー定義のコレクションでも、.NET Framework API から返されたコレクションでもかまいません。The collection may be user-defined or may be returned by a .NET Framework 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 ループと比べて、次の 3 つの重要な利点があります。In addition, LINQ queries offer three main advantages over traditional foreach loops:

  1. 簡潔で読みやすい (特に複数の条件をフィルター処理する場合)。They are more concise and readable, especially when filtering multiple conditions.

  2. 強力なフィルター処理、並べ替え、およびグループ化機能を最小限のアプリケーション コードで実現できる。They provide powerful filtering, ordering, and grouping capabilities with a minimum of application code.

  3. ほとんど、またはまったく変更せずに、他のデータ ソースに移植できる。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 will 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 is 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 topics 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 topics that demonstrate these concepts.

方法: LINQ を使用して ArrayList を照会する (C#)How to: Query an ArrayList with LINQ (C#)
C# で ArrayList を照会する方法を示します。Demonstrates how to query an ArrayList in C#.

方法: LINQ クエリのカスタム メソッドを追加する (C#)How to: Add Custom Methods for LINQ Queries (C#)
IEnumerable<T> インターフェイスに拡張メソッドを追加して、LINQ クエリに使用できるメソッド セットを拡張する方法について説明します。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 topics that explain LINQ and provide examples of code that perform queries.