C# のサンプルと情報は、Windows 版 FRE にのみ適用されます。
- 一時コレクション (既存のオブジェクトへの参照のコレクション)
- 子オブジェクトのコレクション
- 子オブジェクトの読み取り専用コレクション
- 各種類のコレクションの操作方法
- 利用可能なすべてのコレクションの一覧を確認する方法
- Windows 版 FRE の .NET でコレクションを操作する方法
一時コレクション
この型のコレクションは、既存のオブジェクトへの参照をまとめたコレクションです。これらは一時的なコレクションで、通常は各種パラメーターのセットを必要とするメソッドに渡すために使用されます。このコレクションを作成し、要素を追加し (要素は既存のオブジェクトへの参照として追加されます) 、必要なメソッドに渡した後でコレクション自体は破棄しますが、追加されたオブジェクトはそのまま残ります。このようなコレクションの名前にはCollection という接尾辞が付きます (例: StringsCollection、IntsCollection) 。
この型のコレクションを扱うには:
- Engine オブジェクトの対応する作成メソッドを使用してコレクションを作成します。たとえば、
IntsCollectionオブジェクトの場合は CreateIntsCollection メソッドを使用します。これらのコレクションは、一部のメソッドの戻り値となることもあります。 - Add メソッドを使用して、既存のオブジェクトをコレクションに追加します。コレクションは、読み取り専用の
Countプロパティ、読み書き可能な Element プロパティ、および Item メソッドを使って反復処理できます。1 つ目はコレクションに実際に含まれている要素数を取得し、2 つ目と 3 つ目は指定したインデックスの要素にアクセスするためのものです。Elementプロパティを使用すると、C# では[]演算子を使ってコレクションの要素にアクセスできます。 - 必要に応じて、コレクションの他のメソッド InsertAt、DeleteAt、DeleteAll を使用してコレクションを変更します。
- そのコレクションを、パラメーターとして必要とするメソッドに渡します。
IntsCollection オブジェクトを使用する例:
C# コード
C# コード
子オブジェクトのコレクション
別の型として、ある親オブジェクトに属する子オブジェクトのコレクションを表すものがあります。これらのコレクションは、親オブジェクトが存在する間だけ存在します。このようなコレクションを通じて、親オブジェクトの子オブジェクトを追加または削除できます。コレクションに要素を追加すると、新しいオブジェクトが内部で作成され、その後コレクションに追加されます。このようなコレクションの例としては、DictionaryDescriptions (dictionary description オブジェクトのコレクション) や BaseLanguages (基本言語のコレクション) があります。 このようなコレクションを使用するには:- 親オブジェクトのプロパティを介してコレクションを取得します。たとえば、認識言語の基本言語のコレクションにアクセスするには、BaseLanguage オブジェクトの DictionaryDescriptions プロパティを使用します。
- 読み取り専用の Count および Element プロパティと、Item メソッドを使用してコレクションを反復処理します。1つ目はコレクションに実際に含まれている要素数を取得し、2つ目と3つ目は指定した インデックス の要素を取得します。Element プロパティを使用すると、C# で
\[\]演算子を使ってコレクションの要素にアクセスできます。 - 必要に応じて、AddNew メソッドを使用して新しい要素をコレクションに追加します。コレクションごとに AddNew メソッドの構文は多少異なる場合がありますが、これらのメソッドはすべて同じ処理を行います。つまり、新しいコレクション要素を作成してコレクションに追加します。要素は DeleteAt、DeleteAll メソッドを使用して削除できます。
C# コード
C# コード
読み取り専用のコレクション
子オブジェクトのコレクションの中には、読み取り専用のものがあります。つまり、これらには編集用のメソッドがなく、要素を反復処理して参照することしかできません。このようなコレクションの例としては、PredefinedLanguages (定義済み言語のコレクション) や Paragraphs (テキストの段落のコレクション) があります。 このようなコレクションの要素を参照するには:- 親オブジェクトのプロパティからコレクションを取得します。たとえば、テキストの段落のコレクションにアクセスするには、Text オブジェクトの Paragraphs プロパティを使用します。
- 読み取り専用の Count プロパティと Element プロパティ、および Item メソッドを使用してコレクションを反復処理します。1 つ目はコレクションに実際に含まれている要素数を取得し、2 つ目と 3 つ目は指定した インデックス の要素を取得します。Element プロパティを使用すると、C# では [] 演算子を使ってコレクションの要素にアクセスできます。
C# コード
C# コード
利用可能なコレクションの一覧
以下は、FineReader Engine で利用可能なコレクションの一覧です。一部のコレクションでは、要素を操作するための追加のメソッドが用意されています。詳しくは、以下の表を参照してください。
|
|
|
.NET でコレクションを扱う
すべてのコレクション インターフェイスは、IEnumerable インターフェイスから派生しています。つまり、C# では foreach ステートメント (Visual Basic では for each) を使用してコレクションを操作できます。ただし、foreach を使ってコレクションを扱う場合には、いくつか注意すべき点があります。たとえば、列挙子はコレクションを変更するためには使用できず、含まれているデータを読み取るためにのみ使用できます。詳細については、msdn.microsoft.com の注記を参照してください。 以下は、C# で FRPages コレクションに対して foreach を使用する例です。C# コード
C# コード
