Explicación detallada de la clase ArrayList en C#

Tabla de contenido

1. Definición de clase ArrayList

En segundo lugar, la diferencia entre la clase ArrayList y la matriz.

3. Declaración del objeto de clase ArrayList

1. El constructor predeterminado

2. Utilice un objeto ICollection para construir

3. Inicialice la matriz interna con el tamaño especificado.

4. Propiedades comunes de ArrayList

5. Métodos comunes de ArrayList

1. Agregar elementos ArrayList 

(1) Método Agregar ()

(2) Método Insertar ()

(3) Ejemplo completo

2. Eliminación de elementos ArrayList

(1) Método claro ()

(2) Método eliminar()

(3) Método RemoveAt()

(4) Método RemoveRange ()

(5) Ejemplo completo

3. Busque elementos ArrayList

(1) Contiene el método ()

(2) método IndexOf ()

(3) Método LastIndexOf()

4. Recorrido de ArrayList

1. Definición de clase ArrayList

          La clase ArrayList es equivalente a una matriz dinámica avanzada , que es una versión mejorada de la clase Array.

        La clase ArrayList se encuentra en el espacio de nombres System.Collections y puede agregar y eliminar elementos dinámicamente. Puede pensar en la clase ArrayList como una matriz con funcionalidad extendida, pero no es equivalente a una matriz. Utilice la clase ArrayList para agregar referencias:

        usando System.Collections;

En segundo lugar, la diferencia entre la clase ArrayList y la matriz.

        En comparación con Array, la clase ArrayList proporciona las siguientes características al desarrollador.

        ☑ La capacidad de la matriz es fija, mientras que la capacidad de ArrayList se puede ampliar automáticamente según sea necesario.

        ☑ ArrayList proporciona métodos para agregar, eliminar e insertar elementos en un rango determinado, pero en una matriz, solo se puede obtener o establecer un valor de elemento a la vez.

        ☑ ArrayList proporciona métodos de empaquetado de tamaño fijo y de solo lectura para devolver colecciones, mientras que las matrices no.

        ☑ ArrayList solo puede ser unidimensional, mientras que las matrices pueden ser multidimensionales.

        La longitud de un Array es el número total de elementos que puede contener. El rango de una matriz es el número de dimensiones de la matriz. El límite inferior de una dimensión en el Array es el índice inicial de la dimensión en el Array, y cada dimensión de un Array multidimensional puede tener límites diferentes.

3. Declaración del objeto de clase ArrayList

        ArrayList proporciona 3 constructores, a través de los cuales existen 3 métodos de declaración:

1. El constructor predeterminado

        Inicializa la matriz interna con el tamaño predeterminado (16 bits).

        Formato del constructor: pública ArrayList();

        El formato de sintaxis de ArrayList se declara mediante el constructor anterior:

        ArrayList List=new(); // Lista : nombre del objeto ArrayList .

ArrayList List=new();	 //List:ArrayList对象名
for(i=0;i<10;i++)        //给ArrayList类对象添加10个int型元素
{
    List.Add(i);
}

2. Utilice un objeto ICollection para construir

        Y agregue los elementos de la colección al ArrayList.

        Formato del constructor: pública ArrayList(ICollection);

        El formato de sintaxis de ArrayList se declara mediante el constructor anterior:

        Lista ArrayList=new( nombrematriz);

        ☑ Lista: nombre del objeto ArrayList.

        ☑ arryName: el nombre de la matriz para agregar la colección.

int[]arr=new int[]{1,2,3,4,5,6,7,8,9};
ArrayList List=new(arr);

3. Inicialice la matriz interna con el tamaño especificado.

        Formato del constructor: pública ArrayList(int);

        El formato de sintaxis de ArrayList se declara mediante el constructor anterior:

        Lista ArrayList = nuevo (n);

        ☑ Lista: nombre del objeto ArrayList.

        ☑ n: el tamaño del espacio del objeto ArrayList.

ArrayList List=new(10);
for(int i=0;i<List.Count;i++)
{
    List.Add(i);    //给ArrayList添加10个int型元素
}

4. Propiedades comunes de ArrayList

Atributos

ilustrar

Capacidad

Obtener o establecer el número de elementos que puede contener ArrayList

Contar

Obtenga la cantidad de elementos realmente contenidos en ArrayList

Tamaño fijo

Obtiene un valor que indica si ArrayList tiene un tamaño fijo

Es de solo lectura

Obtiene un valor que indica si ArrayList es de solo lectura

Está sincronizado

Obtiene un valor que indica si se sincroniza el acceso a ArrayList

Artículo

Obtiene o establece el elemento en el índice especificado

raíz de sincronización

Obtenga un objeto que pueda usarse para sincronizar el acceso a ArrayList

5. Métodos comunes de ArrayList

1. Agregar elementos ArrayList 

(1) Método Agregar ()

        El método Add() se utiliza para agregar objetos al final de la colección ArrayList y su formato de sintaxis es:

        public virtual int Agregar (valor del objeto);

        ☑ valor: Objeto que se agregará al final de ArrayList, el valor puede ser una referencia nula.

        ☑ Valor de retorno: índice ArrayList, el valor se ha agregado aquí.

        ArrayList permite valores nulos como valores válidos y permite elementos duplicados.

int arr[] =new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	//使用声明的数组实例化ArrayList对象
List.Add(7);			    //为ArrayList对象添加元素

(2) Método Insertar ()

        El método Insert() se utiliza para insertar elementos en el índice especificado de la colección ArrayList y su formato de sintaxis es:

        Insertar vacío virtual público (índice int, valor del objeto)

        ☑ índice: el índice de base cero en el que se debe insertar el valor.

        ☑ valor: Objeto a insertar, el valor puede ser una referencia nula.

        Si el número real de elementos almacenados en ArrayList ya es igual al número de elementos que ArrayList puede almacenar, la capacidad de ArrayList aumentará reasignando automáticamente la matriz interna y los elementos existentes se copiarán a la nueva matriz. antes de agregar nuevos elementos. 

int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new(arr);	//使用声明的数组实例化ArrayList对象
List.Insert(3,7);			//在ArrayList对象索引值=3处添加元素7

(3) Ejemplo completo

//Add()方法和Insert()方法
//分别使用ArrayList对象的Add()方法和Insert()方法向ArrayList集合的结尾处和指定索引处添加元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_12
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };
            ArrayList List = new(arr);                  //使用声明的一维数组实例化一个ArrayList对象
            Console.WriteLine("原ArrayList集合:");
            foreach (int i in List)					    //遍历ArrayList源集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();

            for (int i = 1; i < 5; i++)
            {
                List.Add(i + arr.Length);			    //使用Add()方法为ArrayList集合添加元素
            }
            Console.WriteLine("使用Add方法添加:");
            foreach (int i in List)					    //遍历添加元素后的ArrayList集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();

            List.Insert(6,0);						    //使用Insert()方法在ArrayList集合的index=6处添加元素0
            Console.WriteLine("使用Insert方法添加:");
            foreach (int i in List)					    //遍历最后的ArrayList集合并输出
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Read();
        }
    }
}
/*运行结果:
原ArrayList集合:
1 2 3 4 5 6
使用Add方法添加:
1 2 3 4 5 6 7 8 9 10
使用Insert方法添加:
1 2 3 4 5 6 0 7 8 9 10  */

2. Eliminación de elementos ArrayList

(1) Método claro ()

        El método Clear() se utiliza para eliminar todos los elementos de ArrayList, su formato de sintaxis es:

        vacío virtual público Borrar()

//使用 Clear()方法清除ArrayList中的所有元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	//使用声明的数组实例化ArrayList对象
List.Clear();			    //在ArrayList对象指定位置添加元素

(2) Método eliminar()

        El método Remove() se utiliza para eliminar la primera aparición de un objeto específico de ArrayList, su formato de sintaxis es:

        vacío virtual público Eliminar (Objeto obj)

        obj: el objeto que se eliminará de ArrayList, este valor puede ser una referencia nula.

        Al eliminar elementos en ArrayList, si el objeto especificado no está contenido, ArrayList permanecerá sin cambios.

//使用RemoveAt()方法从声明的ArrayList对象中移除与3匹配的元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new(arr);	//使用声明的数组实例化ArrayList对象
List.Remove(3);			    //删除ArrayList对象指定位置元素

(3) Método RemoveAt()

        El método RemoveAt() se utiliza para eliminar el elemento en el índice especificado de ArrayList y su formato de sintaxis es:

        vacío virtual público RemoveAt (índice int)

        índice: el índice de base cero del elemento a eliminar.        

//使用RemoveAt()方法从声明的ArrayList对象中移除索引为3的元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = newt(arr);	//使用声明的数组实例化ArrayList对象
List.RemoveAt(3);		    //删除ArrayList对象指定位置元素

(4) Método RemoveRange ()

        El método RemoveRange() se utiliza para eliminar un cierto rango de elementos de ArrayList y su formato de sintaxis es:

        vacío virtual público RemoveRange (índice int, recuento int)

        ☑ índice: el índice inicial de base cero del rango de elementos a eliminar.

        ☑ contar: el número de elementos a eliminar.

        En el método RemoveRange(), la longitud del recuento de parámetros no puede exceder la longitud total de la matriz menos el valor del índice del parámetro.

//在ArrayList对象中使用RemoveRange()方法从索引3处删除两个元素
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	   //使用声明的数组实例化ArrayList对象
List.RemoveRange(3,2);	       //删除ArrayList对象指定位置3处2个元素

(5) Ejemplo completo

//RemoveRange()
//使用RemoveRange()方法删除ArrayList集合中的一批元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_13
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            ArrayList List = new(arr);  //使用声明的一维数组实例化一个ArrayList对象
            Console.WriteLine("原ArrayList集合:");
            foreach (int i in List)     //遍历ArrayList集合中的元素并输出
            {
                /*Console.Write(i+ " ");*/  //可以注释掉.ToString()不影响结果
                Console.Write(i.ToString() + " ");
            }

            Console.WriteLine();
            List.RemoveRange(0, 5);     //从索引0处开始删除5个元素
            Console.WriteLine("删除元素后的ArrayList集合:");
            foreach (int i in List)     //遍历删除元素后的ArrayList集合并输出其元素
            {
                Console.Write(i.ToString() + " ");
            }
            Console.WriteLine();
            Console.Read();
        }
    }
}
/*运行结果:
原ArrayList集合:
1 2 3 4 5 6 7 8 9
删除元素后的ArrayList集合:
6 7 8 9     */

3. Busque elementos ArrayList

(1) Contiene el método ()

        El método Contiene () se utiliza para determinar si un elemento está en la colección ArrayList y su formato de sintaxis es:

        bool virtual público Contiene (elemento de objeto)

        ☑ elemento: el Objeto a buscar en ArrayList, este valor puede ser una referencia nula.

        ☑ Valor de retorno: verdadero si el elemento se encuentra en ArrayList; en caso contrario, falso.

//使用 Contains()方法判断数字2是否在ArrayList集合中
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList List = new (arr);	   	    //使用声明的数组实例化ArrayList对象
Console.Write(List.Contains(2));	//ArrayList集合中是否包含指定的元素

(2) método IndexOf ()

Se utiliza para encontrar la primera aparición de         un carácter o cadena .

        El método IndexOf() está representado por la siguiente sintaxis:

public int IndexOf(String value);                  //语法1
public int IndexOf(char value);                    //语法2
public int IndexOf(String value, int startIndex);  //语法3
public int IndexOf(char value, int startIndex);    //语法4

☑ valor: especifique el carácter o cadena que se buscará.

☑startIndex: especifica la posición para comenzar la búsqueda.

Devuelve la posición de la primera aparición de un carácter o cadena, indexada desde 0.

//IndexOf()
//查找字符或者字符首次出现的位置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace yxjc123
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                                           //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            string str = "yxjc123.com  repeat yxjc123.com";            //原字符串

            Console.WriteLine("查找j:" + str.IndexOf('j'));           //查找字符j
            Console.WriteLine("查找123:" + str.IndexOf("123"));       //查找字符串123

            Console.WriteLine("查找j:" + str.IndexOf('j', 10));       //查找字符j,从开始位置10开始
            Console.WriteLine("查找123:" + str.IndexOf("123", 10));   //查找字符串123,从开始位置10开始

            Console.ReadKey();
        }
    }
}
/*运行结果:
查找j:2
查找123:4
查找j:22
查找123:24    */

(3) Método LastIndexOf()

        Se utiliza para encontrar la última aparición de un carácter o cadena.

        El método LastIndexOf() está representado por la siguiente sintaxis:

public int LastIndexOf(String value);                   //语法1
public int LastIndexOf(char value);                     //语法2
public int LastIndexOf(String value, int startIndex);   //语法3
public int LastIndexOf(char value, int startIndex);     //语法4

        ☑ valor: especifique el carácter o cadena que se buscará.

        ☑ startIndex: especifica la posición inicial a buscar, contando desde el final .

        Devuelve la posición de la última aparición de un carácter o cadena.

//LastIndexOf()
//用于查找字符或者字符串最后出现的位置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace yxjc123
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)                                               //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            string str = "yxjc123.com  repeat yxjc123.com";                 //原字符串

            Console.WriteLine("查找j:" + str.LastIndexOf('j'));           //查找字符j
            Console.WriteLine("查找123:" + str.LastIndexOf("123"));       //查找字符串123

            Console.WriteLine("查找j:" + str.LastIndexOf('j', 10));       //查找字符j,倒数从开始位置10开始
            Console.WriteLine("查找123:" + str.LastIndexOf("123", 10));   //查找字符串123,倒数从开始位置10开始
            Console.ReadKey();
        }
    }
}
/*运行结果:
查找j:22
查找123:24
查找j:2
查找123:4   */

4. Recorrido de ArrayList

        El recorrido de la colección ArrayList es similar al de una matriz, y se puede utilizar la declaración foreach.El siguiente ejemplo ilustra cómo atravesar los elementos de la colección ArrayList.

//ArrayList的遍历
//使用foreach语句遍历ArrayList集合中的各个元素并输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Test7_14
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args is null)               //解除IDE0060
            {
                throw new ArgumentNullException(nameof(args));
            }
            ArrayList list = new()          //实例化一个ArrayList对象并赋值
            {
                "TM",
                "C#从入门到精通"
            };                              
            foreach (string str in list)    //遍历ArrayList集合中的元素并输出
            {
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
    }
}
/*运行结果:
TM
C#从入门到精通    */

Supongo que te gusta

Origin blog.csdn.net/wenchm/article/details/131480220
Recomendado
Clasificación