Clase de colección genérica List<T> de la estructura de datos de C#

Resumen: hablar sobre el concepto y el uso de la clase de colección genérica List<T>.

Lenguaje de programación: C#

Entorno de programación: Visual Studio 2019

Tabla de contenido

concepto

Lista de inicialización

Propiedades comunes de List

Métodos comunes de Lista

Adiciones y eliminaciones

clase de búsqueda

otro

Recorrido de lista

resumen

cada mensaje


concepto

        La clase de colección genérica List<T> se encuentra en el espacio de nombres System.Collections.Generic y se puede realizar una colección fuertemente tipada encapsulando objetos. T es el tipo a utilizar, que puede ser un tipo simple (int, string, bool, etc.), un tipo definido por el usuario o una estructura. A diferencia de las matrices ordinarias, las colecciones genéricas pueden ajustar de forma automática y dinámica el tamaño de la colección según sea necesario. List<T> es flexible y se usa ampliamente en la programación de C#, y es una de las estructuras de datos que se debe dominar.

Inicialización de lista<T>

        Tomando tipos simples y tipos definidos por el usuario como ejemplos, se describe la inicialización de la colección genérica List<T>. Los tipos definidos por el usuario son los siguientes:

 //用户自定义类型Students(学生)
    public class Students
    {
        public string Name;//学生姓名
        public int Score;//学生成绩
    }

        El primero es crear una colección vacía:

List<int> intlist = new List<int>();//创建普通类型int泛型空集合
List<Students> students = new List<Students>();//创建用户自定义类型Students泛型空集合

        ¿Cómo asignar el valor inicial? Al igual que inicializar una matriz, inserte llaves {} después de los paréntesis de la nueva instrucción e ingrese el valor inicial correspondiente para asignar un valor inicial a List<T>, de la siguiente manera:

List<int> intList1 = new List<int>() { 0, 1, 2, 3, 5 };//创建带有初值的普通类型int泛型集合
List<Students> students1 = new List<Students>()
{
    new Students{Name="张三",Score=90},
    new Students{Name="李四",Score=91}
};//创建带有初值的用户自定义类型Students泛型集合

Propiedades comunes de List<T>

  • Capacidad: Se utiliza para obtener o establecer (legible y escribible) la capacidad de la Lista actual. Este valor crecerá automáticamente cuando el número exceda la capacidad. (Nota: Entonces, una de las ventajas de List<T> es que no excederá el límite. Al mismo tiempo, la desventaja es que es fácil asignar capacidad redundante. Puede reducir la capacidad configurando este valor)
  • Count: Obtiene (solo lectura) el número de elementos de la colección.
  • this[index]: Obtiene o establece (legible y escribible) el elemento en el índice de valor de índice. (Nota: igual que el método de acceso al índice de matriz)

Métodos comunes de List<T>

Adiciones y eliminaciones

  • Agregar (elemento): agregue un solo objeto del mismo tipo al final de la colección, de la siguiente manera:
List<Students> students2 = new List<Students>();//创建用户自定义类型Students泛型空集合
Students student3 = new Students();//新建一名学生对象
student3.Name = "王麻子";//赋姓名
student3.Score = 94;//赋分数
students2.Add(student3);//将其添加至集合结尾
  • AddRange(items): agregue una colección de objetos similares al final de la colección, el uso es el siguiente: (Nota: la colección de objetos similares agregados no solo puede ser una colección List<T>, sino también una matriz)
List<int> intList2 = new List<int>() { 4 };//创建带有初值的普通类型int泛型集合
List<int> intList3 = new List<int>() { 0, 1, 2, 3, 5 };//创建带有初值的普通类型int泛型集合
int[] intArray1 = new int[3] { 3, 6, 9 };//创建带有初值的int型数组
intList2.AddRange(intList3);//将集合intList3添加至intList2结尾处
intList2.AddRange(intArray1);//将数组intArray1添加至intList2结尾处
  • Insertar (índice, elemento): inserta un solo objeto del mismo tipo en el índice de índice especificado.
  • InsertRange(index,items): inserta una colección de objetos similares en el índice de índice especificado. (Nota: la colección agregada de objetos similares no solo puede ser una colección List<T>, sino también una matriz)
  • Remove(item): Elimina el primer elemento coincidente del elemento del objeto en la colección. El orden de coincidencia es de menor a mayor. Si la coincidencia es exitosa, el objeto se elimina y se devuelve verdadero. Si la coincidencia no es exitosa, hay ningún elemento es igual al elemento de la colección. , devuelve falso. (Nota: vale la pena señalar que si hay varios elementos de este tipo en la colección, solo se eliminará el que tenga el número de índice más pequeño)
List<int> intList4 = new List<int>() { 0, 1, 2, 3, 0 };//创建带有初值的普通类型int泛型集合
intList4.Remove(0);//执行此语句将会移除集合intList4的索引号等于0处的0
  • RemoveAt(index): Elimina el elemento correspondiente al índice index en la colección.
  • RemoveRange(index,count): contando desde el índice de la colección, elimina los elementos de conteo detrás de él. (Nota: Contiene el propio elemento correspondiente al índice índice)
List<int> intList5 = new List<int>() { 0, 1, 2, 3, 0 };//创建带有初值的普通类型int泛型集合
intList5.RemoveRange(1, 2);//执行此语句intList5变为{0,3,0}
  • Clear (): elimina todos los elementos de la colección. (Nota: la capacidad correspondiente también se borrará automáticamente)

clase de búsqueda

  • Contiene (elemento): determine si el elemento elemento está en la colección, devuelva verdadero si existe y devuelva falso si no existe, que se utiliza para el juicio condicional.
  • IndexOf(item): devuelve el número de índice del primer elemento coincidente del elemento del objeto en la colección, el orden de coincidencia es de menor a mayor y se devuelve -1 si falla la coincidencia.
  • LastIndexOf: devuelve el número de índice del primer elemento coincidente del elemento objeto de la colección, el orden de coincidencia es de mayor a menor y se devuelve -1 si falla la coincidencia.

otro

  • CopyTo(Array): comenzando desde el principio de la matriz de destino, copia toda la colección en una matriz unidimensional compatible. (Nota: sobrescribirá los elementos originales en la matriz de destino)
  • Reverse(): Invierte el orden de los elementos de la colección, es decir, invierte el orden.
  • ToArray(): Copie la colección en una nueva matriz y devuelva esta matriz.
  • TrimExcess(): establece la capacidad de recolección en el número real de elementos de recolección.

Recorrido de List<T>

        Para el recorrido de List<T>, se puede usar el bucle for y también se puede usar el bucle foreach. Este último usa más, y la sintaxis básica del recorrido es

List<int> intList6 = new List<int>() { 0, 1, 2, 3, 0 };//创建带有初值的普通类型int泛型集合
foreach(int i in intList6)
{
    //foreach遍历,无需考虑遍历长度,遍历长度自适应,遍历规则只能从前往后,i为遍历对象
}
for(int i = 0; i < intList6.Count; i++)
{
    //for遍历,需考虑遍历长度,遍历规则可设置,intList6[i]为对象
}

resumen

        Este artículo describe brevemente la inicialización, las propiedades, los métodos y el recorrido de la colección genérica List<T>. Hay muchos otros usos para ella. Por ejemplo, muchos métodos (no enumerados en este artículo) usan expresiones lambda para las operaciones, lo cual es también muy importante. , el editor aún no ha entendido completamente esa pieza, y hablará específicamente sobre el uso de expresiones lambda en el futuro.

cada mensaje

        El camino por delante es confuso, pero el camino bajo tus pies es real. Solo hay un paso a la vez. Si pisas el camino y sigues adelante, nunca te decepcionarás.

 

Supongo que te gusta

Origin blog.csdn.net/lucgh/article/details/130276124
Recomendado
Clasificación