オブジェクトコレクションの使用
一部のコンテクストオブジェクトはその他のオブジェクトのコレクションである可能性があります。例えば、IStringsCollection、IParagraphs、 ITextBlocks、IAttributesなどのインターフェースがあるオブジェクトです。
他のオブジェクトのコレクションであるすべてのオブジェクトは、以下のプロパティを持ちます:
- 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
3/26/2024 1:49:51 PM