Utilisation de collections d'objets
Certains objets de contexte peuvent être de collections d'autres objets, tels que des objets avec des interfaces IStringsCollection, IParagraphs, ITextBlocks, IAttributes, etc.
Tous les objets qui sont des collections d'autres objets présentent les propriétés suivantes :
- Nombre : retourne le nombre d'éléments dans une collection.
- Élément(index) : retourne l'élément de collection avec l'index spécifié.
Ces propriétés peuvent être utilisées pour accéder aux éléments de la collection et procéder à l'itération sur tous les éléments à l’aide de la boucle for . Les éléments peuvent également être itérés à l'aide d'une boucle foreach dans les langages de script qui la prennent en charge.
Note.
- Dans tous les scripts, les index commencent toujours par 0.
- Dans tous les languages, à l'exception de C#, vous pouvez utiliser coll(index) à la place de coll.Item(index), car Item est la propriété par défaut.
- Dans C#, il n'est pas possible d'accéder directement à la propriété coll.Item(index) et la propriété coll[index] doit être utilisée à la place.
- Dans les langages .NET, les collections utilisent l'interface IEnumerable et non IEnumerable<T>, c'est pourquoi, le type de la variable doit être explicitement spécifié dans les boucles foreach .
Ci-dessous, vous trouverez un exemple de code permettant de travailler avec la collection TextBlocks de l'objet de contexte d'un script Séparation. Un code similaire peut être utilisé pour d'autres collections.
C#
for(int i = 0; i < page.TextBlocks.Count; i++){
var block = page.TextBlocks[i]
}
// or
foreach (ITextBlock block in page.TextBlocks){
// ...
}
Visual Basic .NET
For i As Integer = 0 To page.TextBlocks.Count-1
Dim block = page.TextBlocks(i)
' or
Dim block = page.TextBlocks.Item(i)
Next
' or
ForEach block As ITextBlock In page.TextBlocks
' ...
Next
JScript .NET
for(var i = 0; i < page.TextBlocks.Count; i++){
var block = page.TextBlocks(i);
// or
var block = page.TextBlocks.Item(i);
}
JScript
for(var i = 0; i < this.TextBlocks.Count; i++){
var block = this.TextBlocks(i);
// or
var block = this.TextBlocks.Item(i);
}
VBScript
Dim i, block
For i = 0 To Me.TextBlocks.Count-1
Set block = Me.TextBlocks(i)
' or
Set block = Me.TextBlocks.Item(i)
Next
' or
ForEach block In Me.TextBlocks
' ...
Next
3/26/2024 1:49:50 PM