¿Diccionario o matriz?
1. El tamaño de la matriz es fijo y no se puede escalar. Aunque el sistema de método general. Array.Resize puede restablecer el tamaño de la matriz.
Sin embargo, este método recrea la matriz con el tamaño recién establecido y la inicializa con los elementos de la matriz anterior. ¡Entonces la matriz anterior será descartada! Y la duración del grupo es variable.
2. La matriz espera declarar el tipo de elementos, pero el tipo de elemento de la clase de colección es objeto.
3. Las matrices se pueden leer y escribir, pero no se pueden declarar matrices de solo lectura. Las clases de colección pueden proporcionar métodos de solo lectura para usar la colección de manera de solo lectura.
4. Los arrays deben tener subíndices enteros para acceder a elementos específicos, pero muchas veces dichos subíndices no son muy útiles. Las colecciones también son listas de datos, pero no se accede a ellas mediante subíndices.
Muchas veces, las colecciones tienen tipos de subíndices personalizados, ¡pero las colas y pilas no admiten el acceso a subíndices en absoluto!
//Array
int【】int array 1;
//Inicializa la matriz unidimensional declarada.
int matriz 1 = nuevo int【3】;
int matriz 1 = nuevo int【3】{ 1, 2, 3 }; 1 = new int【】{ 1, 2, 3 };
//El objeto de clase ArrayList está diseñado como un tipo de matriz dinámica y su capacidad se ampliará adecuadamente según sea necesario.
Método
1: add() agrega elementos a la matriz.
2: remove() elimina elementos del array.
3:remove at (int I) elimina el elemento con valor de índice I en la matriz.
4: reverse() invierte los elementos del array.
5: sort() organiza los elementos de la matriz de pequeño a grande.
6: clone() copia el array.
//Lista
Una lista fuertemente tipada de objetos accesibles a través del índice. Proporciona métodos para buscar, ordenar y manipular listas.
Al decidir si usar las clases List o ArrayList (ambas tienen una funcionalidad similar), recuerde que la clase List funciona mejor en la mayoría de los casos y es de tipo seguro. Si utiliza un tipo de referencia para el tipo t de la clase Lista, entonces las dos clases se comportan exactamente igual. Sin embargo, si utiliza un tipo de valor para el tipo T, debe considerar cuestiones de implementación y empaquetado.
Si se utiliza un tipo de valor para el tipo t, el compilador generará una implementación de la clase List específicamente para este tipo de valor. Esto significa que los elementos Lista del objeto de lista se pueden usar sin encajonar y se están creando alrededor de 500 listas.
elemento, la memoria ahorrada al no encuadrar los elementos de la lista será mayor que la memoria utilizada para generar dicha implementación.
//Diccionario
Representa una colección de claves y valores. El orden en el que Dictionary recorre la salida es el orden en que se agregó, a diferencia de Hashtable.
//Clase SortedList
Similar a una tabla hash, excepto que la matriz de claves en SortedList está ordenada.
//Clase de tabla hash
Tabla hash, pares nombre-valor. Similar a un diccionario (más poderoso que una matriz). Las tablas hash están optimizadas para que los objetos a los que se accede mediante subíndices se apliquen primero. Será más rápido que otras colecciones si accede a sus elementos utilizando cualquier tipo de valor clave.
El método GetHashCode() devuelve datos de tipo int y el valor de esta clave se utiliza para generar datos de tipo int. La tabla hash toma ese valor y finalmente devuelve un índice que indica en qué parte del diccionario se almacena el elemento de datos con el hash dado.
//Clase de pila
Pila, último en entrar, primero en salir. El método push ingresa a la pila y el método pop sale de la pila.
Categoría de cola
Cola, primero en entrar, primero en salir. El método Enqueue ingresa a la cola y el método Dequeue sale de la cola.
-
//Diccionario
Sistema. colecciones. entrada de diccionario DIC = nuevo sistema. colecciones .dictionary Entry("key 1","value 1");
Diccionario<int,string>fruit=new diccionario<int,string>();
//Agregar una clave duplicada arrojará un excepción.
Fruta. add(1,"manzana");
Fruta. add(2,"naranja");
Frutas. add(3,"plátano");
Fruta. add(4, "pineapple");
//Debido a que se introducen genéricos, no es necesario convertir claves de Object a int, y lo mismo ocurre con las colecciones de valores.
foreach(int I. key) en fruta
{
Consola. WriteLine("La clave es: {0} y el valor es: {1}", I, fruta
}
//Eliminar la clave y el valor especificados); p>
Frutas. Delete(1);
//Determina si la clave especificada está incluida.
if (resultado. contiene clave(1))
{
Consola. WriteLine("Contiene esta clave");
}
//Borrar todos los objetos de la colección
Frutas. clear();
}
//Lista de matrices
System. recolectar. listaarray = nuevo sistema. colecciones.ArrayList();
Lista. Añadir(1);
Lista. add(2);
for(int i = 0; i & lt list. count; i++)
{
system. console .WriteLine(list[I]);
}
//List
//Declara un objeto de lista y solo agrega parámetros de cadena.
Lista<String>names = nueva Lista<String>();
Nombres. Agregar("Qiao Feng");
Nombre. Agregar("Ouyang Feng");
Nombre. add("wasp");
//Recorre la lista
foreach (nombre de cadena en nombre)
{
Torre de control . WriteLine(nombre);
}
//Insertar elemento en la lista
Nombre. Insertar (2. "Zhang Sanfeng");
//Eliminar el elemento especificado.
Nombre. clear("WASP");
//hashtable
system. Colecciones. Tabla Hashtable = nuevo sistema. colecciones.Hashtable();
Tabla. add("tabla 1", 1);
Tabla. Agregar("Tabla 2", 2);
System. colecciones .IDictionaryEnumerator d = tabla. get enumerador();
mientras(d. MoveNext())
{
System. console . WriteLine (d . entrada . clave
}
//Queue
System. Colecciones.Cola cola = nuevo sistema. colecciones.Queue();
Cola. En cola(1);
Cola. En cola(2);
System. consola. Línea de escritura (cola.
peek());
mientras(queue.count>0)
{
System. consola. WriteLine(queue.dequeue());
}
//SortedList
System. Colecciones Lista SortedList = nuevo sistema. colecciones.lista ordenada();
Lista. add("clave 2", 2);
Lista. add("clave 1", 1);
for(int I = 0;i<list.count;i++)
{
Sistema. consola .WriteLine(list.GetKey(I);
}
//Pila
System.Collections.Stack pila = new System.collections.Stack(
Stack.Push(1);
Stack.Push(2);
System.Peek());
mientras(stack.count>0)
{
System.WriteLine(stack.pop());
}