Colección de citas famosas - Slogan de motivación - ¿Cuáles son las declaraciones similares a la función Java Map en C#?

¿Cuáles son las declaraciones similares a la función Java Map en C#?

Una colección representa un conjunto de objetos a los que se puede acceder atravesando cada elemento (especialmente usando un bucle foreach)

Una colección incluye múltiples elementos, es decir, hay una clase de colección Objeto y objeto N elemento

Debido a que cualquier clase de colección implementa la interfaz IEnumerable, cualquier objeto de clase de colección tiene un método GetEnumerator (), que puede devolver un objeto que implementa la interfaz IEnumerator. Esto devuelve El objeto IEnumerator no es ninguno de los dos. un objeto de clase de colección ni un objeto de clase de elemento de colección, es un objeto de clase independiente. A través de este objeto, puede atravesar y acceder a cada objeto elemento en el objeto de clase de colección

Si la clase de colección es una clase de colección definida por el usuario, el usuario debe implementar su método GetEnumerator(); de lo contrario, el bucle no puede utilizarse. Por supuesto, la clase IEnumerator correspondiente a esta clase de colección personalizada (la clase que implementa esta interfaz) también debe personalizarse.

Por ejemplo, el IEnumerator correspondiente a la clase de colección ArrayList es ArrayListEnumeratorSimple

El IEnumerator correspondiente a la clase de colección Array es SZArrayEnumerator

(Ambas clases no se introducen en el documento de la biblioteca de clases de .net framework (msdn))

En 1.System.Colloctions Las interfaces que representan el comportamiento de las colecciones son:

1) ICollection

Define el tamaño, enumeración y métodos de sincronización de todas las colecciones. Derivado de IEnumerable

Define el comportamiento más básico de las clases de colección. Todas las clases de colección implementan esta interfaz (interfaz base)

Pero su comportamiento es demasiado básico: principalmente una propiedad Count. no tiene mucho sentido implementarlo solo

2) IEnumerable

Enumerador público, que admite iteraciones simples en la colección

Tiene un solo método GetEnumerator( ), que puede devolver una interfaz IEnumerator a través de la cual se puede atravesar la colección

Básicamente, todas las clases de colección implementan esta interfaz

3) IList

La implementación de IList es una colección de valores que se pueden ordenar y a cuyos miembros se puede acceder por índice. Implementa las interfaces ICollection e IEnumerable.

Es la clase base abstracta para todas las listas. Hay tres categorías de implementaciones de IList: de solo lectura, de tamaño fijo y de tamaño variable.

4)IDictionary

La implementación de IDictionary es una colección de pares clave/valor, que a su vez implementa las interfaces ICollection e IEnumerable

Es una colección de claves/ Interfaz base de pares de valores. Hay tres categorías de implementaciones de IDictionary: de solo lectura, de tamaño fijo y de tamaño variable.

IDictionary puede denominarse diccionario, mapa o tabla hash, que accede a valores en función de claves (de cualquier tipo)

2. Las clases de colección que se pueden usar directamente en System. .Las colecciones son:

1) ArrayList

Implementa las interfaces: IList, ICollection, IEnumerable

Siempre que la colección no se modifique, ArrayList puede admitir de forma segura varios lectores al mismo tiempo

A medida que se agregan elementos a ArrayList, la capacidad aumenta automáticamente según demanda mediante la reasignación (un aumento del doble)

Si necesita crear un matriz de objetos, pero el tamaño de la matriz no se puede conocer de antemano. Puede usar ArrayList

ArrayList se refiere a todos los elementos como objetos, por lo que se requiere conversión de tipo al acceder a elementos de ArrayList

Ventajas: cambio de tamaño dinámico, inserción y eliminación de elementos flexibles y convenientes, ordenables

Desventajas: el rendimiento durante la inserción no es tan bueno como el de las matrices, no está fuertemente tipado

2) BitArray

Implementa las interfaces: ICollection, IEnumerable

Administra una matriz comprimida de valores de bits.

3)Hashtable

Implementa las interfaces: IDictionary, ICollection, IEnumerable

Puedes agregar y eliminar elementos libremente al Hashtable, algunos como ArrayList, pero no como gran sobrecarga de rendimiento

4)SortedList

Implementa las interfaces: IDictionary, ICollection, IEnumerable

SortedLIst tiene en cuenta las ventajas de ArrayList y Hashtable, y puede ordenarse por valor clave Ordenar

5) Cola

Implementa las interfaces: ICollection, IEnumerable

Queque es una cola que accede a cada elemento en un orden de entrada , primero en salir

Puede llamar al método GetEnumerator() del objeto Queque para hacer que el objeto IEnumerator atraviese cada elemento en la cola

6) Pila

implementa las interfaces: ICollection, IEnumerable

La pila es una pila y se accede a cada elemento según el orden de último en entrar, primero en salir

Puedes llamar a GetEnumerator( ) del objeto Stack para que el objeto IEnumerator atraviese cada elemento de la pila

3. Las clases de colección mencionadas anteriormente son todas clases de colección generales. La mayoría de los elementos que aceptan son de tipo Objeto. los objetos se colocan en la colección, pierden su información de tipo original; es decir, estas clases de colección generales no están fuertemente tipadas

La solución es utilizar clases de colección fuertemente tipadas

Clases CollectionBase, DictionaryBase y ReadOnlyCollectionBase en el espacio de nombres System.Collections

Algunas clases en el espacio de nombres System.Collections.Specialized pueden cumplir los requisitos y pueden usarse directamente o heredarse