El método ArrayList.GetEnumerator(Int32, Int32) se usa para obtener un enumerador para un rango de elementos en ArrayList .
Sintaxis:
System.Collections.IEnumerator virtual público GetEnumerator (índice int, recuento int);
Parámetros:
índice: es el índice inicial de base cero de tipo Int32 de la sección ArrayList al que debe hacer referencia el enumerador.
count: Es el número de elementos del tipo Int32 en la sección ArrayList a los que debe hacer referencia el enumerador.
Valor de retorno: este método devuelve un IEnumerator para el rango de elementos especificado en ArrayList.
Excepciones:
- ArgumentOutOfRangeException: si el índice o el recuento es menor que cero.
- ArgumentException: si el índice y el recuento no especifican un rango válido en ArrayList.
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:
// C# code to get an enumerator for a // range of elements in the ArrayList using System; using System.Collections; class GFG { // Driver code public static void Main() { // Creating an ArrayList ArrayList myList = new ArrayList(); // adding elements in myList myList.Add(14); myList.Add(45); myList.Add(78); myList.Add(48); myList.Add(49); myList.Add(51); myList.Add(77); // To get an Enumerator // for the ArrayList IEnumerator enumerator = myList.GetEnumerator(); // If MoveNext passes the end of the // collection, the enumerator is positioned // after the last element in the ArrayList // and MoveNext returns false. while (enumerator.MoveNext()) { Console.WriteLine(enumerator.Current); } Console.WriteLine("After GetEnumerator(Int32, Int32) Method: "); // To get an Enumerator for a range // of elements of the ArrayList // here index is 3 and count is 2 IEnumerator e = myList.GetEnumerator(3, 2); // If MoveNext passes the end of the // collection, the enumerator is positioned // after the last element in the ArrayList // and MoveNext returns false. while (e.MoveNext()) { Object obj1 = e.Current; Console.WriteLine(obj1); } } }
Producción:
14 45 78 48 49 51 77 After GetEnumerator(Int32, Int32) Method: 48 49
Ejemplo 2:
// C# code to get an enumerator for a // range of elements in the ArrayList using System; using System.Collections; class GFG { // Driver code public static void Main() { // Creating an ArrayList ArrayList myList = new ArrayList(); // adding elements in myList myList.Add("C"); myList.Add("C++"); myList.Add("Java"); myList.Add("Python"); myList.Add("C#"); myList.Add("HTML"); myList.Add("CSS"); Console.WriteLine("After GetEnumerator(Int32, Int32) Method: "); // To get an Enumerator for a range // of elements of the ArrayList // this will give error as index is // less than zero IEnumerator e = myList.GetEnumerator(-1, 2); // If MoveNext passes the end of the // collection, the enumerator is positioned // after the last element in the ArrayList // and MoveNext returns false. while (e.MoveNext()) { Object obj1 = e.Current; Console.WriteLine(obj1); } } }
Error de tiempo de ejecución:
Excepción no controlada:
System.ArgumentOutOfRangeException: se requiere un número no negativo.
Nombre del parámetro: índice
Nota:
- La instrucción foreach del lenguaje C# oculta la complejidad de los enumeradores. Por lo tanto, se recomienda usar foreach , en lugar de manipular directamente el enumerador.
- Los enumeradores se pueden usar para leer los datos de la colección, pero no se pueden usar para modificar la colección subyacente.
- Current devuelve el mismo objeto hasta que se llama MoveNext o Reset. MoveNext establece Current en el siguiente elemento.
- Un enumerador sigue siendo válido mientras la colección permanezca sin cambios. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida irremediablemente y su comportamiento no está definido.
- Este método es una operación O(1).
Referencia:
Publicación traducida automáticamente
Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA