LINQ と文字列 (C#)

文字列やそのコレクションは、LINQ を使って照会したり変換したりすることができます。 特に、テキスト ファイル内の半構造化されたデータでその利便性が発揮されます。 LINQ クエリは、従来の文字列関数や正規表現と組み合わせることができます。 たとえば、String.Split または Regex.Split メソッドを使用して、文字列の配列を作成し、その後で LINQ を使用してクエリを実行したり変更したりすることができます。 LINQ クエリの where 句で Regex.IsMatch メソッドを使用できます。 LINQ を使用して、正規表現によって返される MatchCollection の結果に対してクエリを実行したり変更したりすることができます。

このセクションで説明する手法を使えば、半構造化されたテキスト データを XML に変換することもできます。 詳細については、「CSV ファイルから XML を生成する方法」を参照してください。

このセクションの例は、次の 2 つのカテゴリに分かれています。

テキスト ブロックに対するクエリ

String.Split メソッドまたは Regex.Split メソッドを使用して、テキスト ブロックをクエリ可能な小さな文字列の配列に分割することによって、テキスト ブロックのクエリ、分析、および変更を実行できます。 単語や文、段落、ページなどの単位にソース テキストを分割できるほか、クエリ内で必要であれば、さらに細かく分割することもできます。

半構造化されたテキスト形式データに対するクエリ

テキスト ファイルにはさまざまな種類がありますが、タブ区切りファイルやコンマ区切りファイル、固定長行など同様の形式を持った一連の行で構成されていることは少なくありません。 そのようなテキスト ファイルをメモリに読み込んだ後、LINQ を使って、必要な行を照会したり編集したりすることができます。 複数ソースからのデータを組み合わせる作業も LINQ クエリなら簡単に行うことができます。

関連項目