Working with Collections
There are three major types of collections in ABBYY FineReader Engine:
- temporary collections (collections of references to existing objects),
- collections of child objects,
- and read-only collections of child objects.
On this page, you can find information on how to work with each type of collection and view the list of all available collections.
Temporary collections
This type of collection represents a collection of references to existing objects. These are temporary collections; usually, they are used to pass various sets of parameters into methods that require them. You create this collection, add elements to it (elements are added as references to existing objects), pass to the required method, and then destroy the collection while the objects that were added to it remain. Such collections have Collection postfix in their names (e.g., StringsCollection, IntsCollection).
To work with a collection of such type:
- Create the collection using the corresponding creation method of the Engine object. For example, for the IntsCollection object, it is the CreateIntsCollection method. These collections can also be return values of some methods.
- Add existing objects to the collection using its Add method. You can iterate through the collection using its read-only Count property, read-write Element property, and Item method. The first one gets the number of elements actually contained in the collection, the second and third ones provide access to the element at the specified index.
- If necessary, modify the collection using other methods of the collection: InsertAt, DeleteAt, DeleteAll methods.
- Pass the collection to the method that requires it as a parameter.
Collections of child objects
Another type represents a collection of child objects of some parent object. These collections exist while their parent object exists. Via such collections, you can add or remove child objects of the parent object. When you add an element into the collection, a new object is created internally and then added to the collection. Examples of such collections: DictionaryDescriptions – a collection of dictionary description objects, BaseLanguages – a collection of base languages.
To use such collections:
- Obtain the collection via the property of its parent object. For example, if you want to access the collection of base languages of a recognition language, use the DictionaryDescriptions property of the BaseLanguage object.
- Iterate through the collection using the read-only Count and Element properties and the Item method. The first one gets the number of elements actually contained in the collection, the second and third ones get the element at the specified index.
- If necessary, add new elements to the collection using its AddNew method. The AddNew methods of different collections can have slightly different syntax, but all these methods do the same: create a new collection element and add it into the collection. You can delete elements using the DeleteAt, DeleteAll methods.
Read-only collections
Some collections of child objects are read-only. This means that they do not have editing methods, you can only iterate and view their elements. Examples of such collections are: PredefinedLanguages – a collection of predefined languages, Paragraphs – a collection of paragraphs of a text.
To view the elements of such collections:
- Obtain the collection via the property of its parent object. For example, if you want to access the collection of paragraphs of a text, use the Paragraphs property of the Text object.
- Iterate through the collection using the read-only Count and Element properties and the Item method. The first one gets the number of elements actually contained in the collection, the second and third ones get the element at the specified index.
All available collections
Below is the full list of the collections available in FineReader Engine. Some of the collections provide additional methods for working with elements. See details in the table below.
Collections of child objects | Read-only collections | Temporary collections |
---|---|---|
|
|
|
7/3/2024 8:50:25 AM