LINQ と文字列 (C#)LINQ and strings (C#)

文字列やそのコレクションは、LINQ を使って照会したり変換したりすることができます。LINQ can be used to query and transform strings and collections of strings. 特に、テキスト ファイル内の半構造化されたデータでその利便性が発揮されます。It can be especially useful with semi-structured data in text files. LINQ クエリは、従来の文字列関数や正規表現と組み合わせることができます。LINQ queries can be combined with traditional string functions and regular expressions. たとえば、String.Split または Regex.Split メソッドを使用して、文字列の配列を作成し、その後で LINQ を使用してクエリを実行したり変更したりすることができます。For example, you can use the String.Split or Regex.Split method to create an array of strings that you can then query or modify by using LINQ. LINQ クエリの where 句で Regex.IsMatch メソッドを使用できます。You can use the Regex.IsMatch method in the where clause of a LINQ query. LINQ を使用して、正規表現によって返される MatchCollection の結果に対してクエリを実行したり変更したりすることができます。And you can use LINQ to query or modify the MatchCollection results returned by a regular expression.

このセクションで説明する手法を使えば、半構造化されたテキスト データを XML に変換することもできます。You can also use the techniques described in this section to transform semi-structured text data to XML. 詳細については、「方法 :CSV ファイルから XML を生成する (C#)」を参照してください。For more information, see How to: Generate XML from CSV Files.

このセクションの例は、次の 2 つのカテゴリに分かれています。The examples in this section fall into two categories:

テキスト ブロックに対するクエリQuerying a block of text

String.Split メソッドまたは Regex.Split メソッドを使用して、テキスト ブロックをクエリ可能な小さな文字列の配列に分割することによって、テキスト ブロックのクエリ、分析、および変更を実行できます。You can query, analyze, and modify text blocks by splitting them into a queryable array of smaller strings by using the String.Split method or the Regex.Split method. 単語や文、段落、ページなどの単位にソース テキストを分割できるほか、クエリ内で必要であれば、さらに細かく分割することもできます。You can split the source text into words, sentences, paragraphs, pages, or any other criteria, and then perform additional splits if they are required in your query.

半構造化されたテキスト形式データに対するクエリQuerying semi-structured data in text format

テキスト ファイルにはさまざまな種類がありますが、タブ区切りファイルやコンマ区切りファイル、固定長行など同様の形式を持った一連の行で構成されていることは少なくありません。Many different types of text files consist of a series of lines, often with similar formatting, such as tab- or comma-delimited files or fixed-length lines. そのようなテキスト ファイルをメモリに読み込んだ後、LINQ を使って、必要な行を照会したり編集したりすることができます。After you read such a text file into memory, you can use LINQ to query and/or modify the lines. 複数ソースからのデータを組み合わせる作業も LINQ クエリなら簡単に行うことができます。LINQ queries also simplify the task of combining data from multiple sources.

関連項目See also