オブジェクトコレクションの使用

一部のコンテクストオブジェクトはその他のオブジェクトのコレクションである可能性があります。例えば、IStringsCollectionIParagraphsITextBlocksIAttributesなどのインターフェースがあるオブジェクトです。

他のオブジェクトのコレクションであるすべてのオブジェクトは、以下のプロパティを持ちます:

  • Count – コレクションの中のアイテムの数を返します。
  • Item(インデックス) – 指定されたインデックスを持つアイテムのコレクションを返します。

これらのプロパティはコレクションアイテムにアクセスするのに使用される他、for ループを使ってアイテムを繰り返すのに使用されます。Foreachループをサポートするスクリプト言語では、これを使ってアイテムを繰り返すこともできます。

注:

  • すべてのスクリプトでインデックスは常に0から開始します。
  • C#を除くすべての言語で、coll.Item(インデックス) の代わりに coll(インデックス)を使用できます。Item がデフォルトのプロパティであるためです。
  • C#では、coll.Item(インデックス) プロパティは直接アクセスできないため、coll[index] を代わりに使用する必要があります。
  • .NET言語では、コレクションはIEnumerable インターフェースを使用し、IEnumerable<T>は使用されないため、変数の種類はforeach ループで明示的に指定しなければなりません。

以下に、分割スクリプトのコンテクストオブジェクトTextBlocks コレクションを操作するためのサンプルコードを提示します。類似のコードは他のコレクションにも使用できます。

C#

for(int i = 0; i < page.TextBlocks.Count; i++){
   var block = page.TextBlocks[i]
}
// または
foreach (ITextBlock block in page.TextBlocks){
   // ...
}

Visual Basic .NET

For i As Integer = 0 To page.TextBlocks.Count-1
   Dim block = page.TextBlocks(i)
   ' または
   Dim block = page.TextBlocks.Item(i)
Next
' または
ForEach block As ITextBlock In page.TextBlocks
   ' ...
Next

JScript .NET

for(var i = 0; i < page.TextBlocks.Count; i++){
   var block = page.TextBlocks(i);
   // または
   var block = page.TextBlocks.Item(i);
}

JScript

for(var i = 0; i < this.TextBlocks.Count; i++){
   var block = this.TextBlocks(i);
   // または
   var block = this.TextBlocks.Item(i);
}

VBScript

Dim i, block
For i = 0 To Me.TextBlocks.Count-1
   Set block = Me.TextBlocks(i)
   ' または
   Set block = Me.TextBlocks.Item(i)
Next
' または
ForEach block In Me.TextBlocks
   ' ...
Next

11/29/2022 5:26:48 PM

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.