ArrayList.GetEnumerator Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne un énumérateur qui itère dans le ArrayList.
Surcharges
| Nom | Description |
|---|---|
| GetEnumerator() |
Retourne un énumérateur pour l’intégralité ArrayList. |
| GetEnumerator(Int32, Int32) |
Retourne un énumérateur pour une plage d’éléments dans le ArrayList. |
GetEnumerator()
Retourne un énumérateur pour l’intégralité ArrayList.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public virtual System.Collections.IEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator () As IEnumerator
Retours
Un IEnumerator pour l’ensemble ArrayList.
Implémente
Exemples
L’exemple suivant obtient l’énumérateur pour un ArrayList, et l’énumérateur pour une plage d’éléments dans le ArrayList.
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ArrayList colors = new ArrayList();
colors.Add("red");
colors.Add("blue");
colors.Add("green");
colors.Add("yellow");
colors.Add("beige");
colors.Add("brown");
colors.Add("magenta");
colors.Add("purple");
IEnumerator e = colors.GetEnumerator();
while (e.MoveNext())
{
Object obj = e.Current;
Console.WriteLine(obj);
}
Console.WriteLine();
IEnumerator e2 = colors.GetEnumerator(2, 4);
while (e2.MoveNext())
{
Object obj = e2.Current;
Console.WriteLine(obj);
}
}
}
/* This code example produces
the following ouput:
red
blue
green
yellow
beige
brown
magenta
purple
green
yellow
beige
brown
*/
Imports System.Collections
Class Program
Private Shared Sub Main(ByVal args As String())
Dim colors As New ArrayList()
colors.Add("red")
colors.Add("blue")
colors.Add("green")
colors.Add("yellow")
colors.Add("beige")
colors.Add("brown")
colors.Add("magenta")
colors.Add("purple")
Dim e As IEnumerator = colors.GetEnumerator()
While e.MoveNext()
Dim obj As [Object] = e.Current
Console.WriteLine(obj)
End While
Console.WriteLine()
Dim e2 As IEnumerator = colors.GetEnumerator(2, 4)
While e2.MoveNext()
Dim obj As [Object] = e2.Current
Console.WriteLine(obj)
End While
End Sub
End Class
' This code example produces
' the following ouput:
' red
' blue
' green
' yellow
' beige
' brown
' magenta
' purple
'
' green
' yellow
' beige
' brown
'
Remarques
L’instruction foreach du langage C# (for each dans Visual Basic) masque la complexité des énumérateurs. Par conséquent, l’utilisation foreach est recommandée au lieu de manipuler directement l’énumérateur.
Les énumérateurs peuvent être utilisés pour lire les données de la collection, mais ils ne peuvent pas être utilisés pour modifier la collection sous-jacente.
Initialement, l’énumérateur est positionné avant le premier élément de la collection. Reset ramène également l’énumérateur à cette position. À cette position, Current n’est pas défini. Par conséquent, vous devez appeler MoveNext pour faire avancer l’énumérateur vers le premier élément de la collection avant de lire la valeur de Current.
Currentretourne le même objet jusqu’à ce que l’un ou MoveNext l’autre Reset soit appelé. MoveNext définit Current l’élément suivant.
Si MoveNext elle passe la fin de la collection, l’énumérateur est positionné après le dernier élément de la collection et MoveNext retourne false. Lorsque l’énumérateur se trouve à cette position, les appels suivants retournent MoveNext également false. Si le dernier appel à MoveNext renvoyer false, Current n’est pas défini. Pour définir Current à nouveau le premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.
Un énumérateur reste valide tant que la collection reste inchangée. Si des modifications sont apportées à la collection, telles que l’ajout, la modification ou la suppression d’éléments, l’énumérateur est irrécupérablement invalidé et son comportement n’est pas défini.
L’énumérateur n’a pas d’accès exclusif à la collection ; par conséquent, l’énumération par le biais d’une collection n’est pas intrinsèquement une procédure thread-safe. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération. Pour permettre à la collection d’accéder à plusieurs threads pour la lecture et l’écriture, vous devez implémenter votre propre synchronisation.
Cette méthode est une O(1) opération.
Voir aussi
S’applique à
GetEnumerator(Int32, Int32)
Retourne un énumérateur pour une plage d’éléments dans le ArrayList.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator(int index, int count);
public virtual System.Collections.IEnumerator GetEnumerator(int index, int count);
abstract member GetEnumerator : int * int -> System.Collections.IEnumerator
override this.GetEnumerator : int * int -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator (index As Integer, count As Integer) As IEnumerator
Paramètres
- index
- Int32
Index de départ de base zéro de la ArrayList section à laquelle l’énumérateur doit faire référence.
- count
- Int32
Nombre d’éléments de la ArrayList section à laquelle l’énumérateur doit faire référence.
Retours
Pour IEnumerator la plage d’éléments spécifiée dans le ArrayList.
Exceptions
index et count ne spécifiez pas de plage valide dans le ArrayList.
Exemples
L’exemple suivant obtient l’énumérateur pour un ArrayList, et l’énumérateur pour une plage d’éléments dans le ArrayList.
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ArrayList colors = new ArrayList();
colors.Add("red");
colors.Add("blue");
colors.Add("green");
colors.Add("yellow");
colors.Add("beige");
colors.Add("brown");
colors.Add("magenta");
colors.Add("purple");
IEnumerator e = colors.GetEnumerator();
while (e.MoveNext())
{
Object obj = e.Current;
Console.WriteLine(obj);
}
Console.WriteLine();
IEnumerator e2 = colors.GetEnumerator(2, 4);
while (e2.MoveNext())
{
Object obj = e2.Current;
Console.WriteLine(obj);
}
}
}
/* This code example produces
the following ouput:
red
blue
green
yellow
beige
brown
magenta
purple
green
yellow
beige
brown
*/
Imports System.Collections
Class Program
Private Shared Sub Main(ByVal args As String())
Dim colors As New ArrayList()
colors.Add("red")
colors.Add("blue")
colors.Add("green")
colors.Add("yellow")
colors.Add("beige")
colors.Add("brown")
colors.Add("magenta")
colors.Add("purple")
Dim e As IEnumerator = colors.GetEnumerator()
While e.MoveNext()
Dim obj As [Object] = e.Current
Console.WriteLine(obj)
End While
Console.WriteLine()
Dim e2 As IEnumerator = colors.GetEnumerator(2, 4)
While e2.MoveNext()
Dim obj As [Object] = e2.Current
Console.WriteLine(obj)
End While
End Sub
End Class
' This code example produces
' the following ouput:
' red
' blue
' green
' yellow
' beige
' brown
' magenta
' purple
'
' green
' yellow
' beige
' brown
'
Remarques
L’instruction foreach du langage C# masque la complexité des énumérateurs. Par conséquent, l’utilisation foreach est recommandée au lieu de manipuler directement l’énumérateur.
Les énumérateurs peuvent être utilisés pour lire les données de la collection, mais ils ne peuvent pas être utilisés pour modifier la collection sous-jacente.
Initialement, l’énumérateur est positionné avant le premier élément de la collection. Reset ramène également l’énumérateur à cette position. À cette position, Current n’est pas défini. Par conséquent, vous devez appeler MoveNext pour faire avancer l’énumérateur vers le premier élément de la collection avant de lire la valeur de Current.
Currentretourne le même objet jusqu’à ce que l’un ou MoveNext l’autre Reset soit appelé. MoveNext définit Current l’élément suivant.
Si MoveNext elle passe la fin de la collection, l’énumérateur est positionné après le dernier élément de la collection et MoveNext retourne false. Lorsque l’énumérateur se trouve à cette position, les appels suivants retournent MoveNext également false. Si le dernier appel à MoveNext renvoyer false, Current n’est pas défini. Pour définir Current à nouveau le premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.
Un énumérateur reste valide tant que la collection reste inchangée. Si des modifications sont apportées à la collection, telles que l’ajout, la modification ou la suppression d’éléments, l’énumérateur est irrécupérablement invalidé et son comportement n’est pas défini.
L’énumérateur n’a pas d’accès exclusif à la collection ; par conséquent, l’énumération par le biais d’une collection n’est pas intrinsèquement une procédure thread-safe. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération. Pour permettre à la collection d’accéder à plusieurs threads pour la lecture et l’écriture, vous devez implémenter votre propre synchronisation.
Cette méthode est une O(1) opération.