F # - Listas mutables
los List<'T> class representa una lista fuertemente tipada de objetos a los que se puede acceder por índice.
Es una contraparte mutable de la clase List. Es similar a las matrices, ya que se puede acceder a él mediante un índice, sin embargo, a diferencia de las matrices, las listas se pueden cambiar de tamaño. Por lo tanto, no es necesario especificar un tamaño durante la declaración.
Crear una lista mutable
Las listas se crean utilizando newpalabra clave y llamando al constructor de la lista. El siguiente ejemplo demuestra esto:
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
Cuando compila y ejecuta el programa, produce el siguiente resultado:
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
La clase List (T)
La clase List (T) representa una lista fuertemente tipada de objetos a los que se puede acceder por índice. Proporciona métodos para buscar, ordenar y manipular listas.
Las siguientes tablas proporcionan las propiedades, constructores y métodos de la clase List (T):
Propiedades
Propiedad | Descripción |
---|---|
Capacidad | Obtiene o establece el número total de elementos que la estructura de datos interna puede contener sin cambiar el tamaño. |
Contar | Obtiene el número de elementos contenidos en la Lista (T). |
Articulo | Obtiene o establece el elemento en el índice especificado. |
Constructores
Constructor | Descripción |
---|---|
Lista (T) () | Inicializa una nueva instancia de la clase List (T) que está vacía y tiene la capacidad inicial predeterminada. |
Lista (T) (IEnumerable (T)) | Inicializa una nueva instancia de la clase List (T) que contiene elementos copiados de la colección especificada y tiene capacidad suficiente para acomodar la cantidad de elementos copiados. |
Lista (T) (Int32) | Inicializa una nueva instancia de la clase List (T) que está vacía y tiene la capacidad inicial especificada. |
Método
Métodos | Descripción |
---|---|
Añadir | Agrega un objeto al final de la Lista (T). |
AddRange | Agrega los elementos de la colección especificada al final de la Lista (T). |
AsReadOnly | Devuelve un contenedor IList (T) de solo lectura para la colección actual. |
BinarySearch (T) | Busca en toda la Lista ordenada (T) un elemento utilizando el comparador predeterminado y devuelve el índice de base cero del elemento. |
BinarySearch (T, IComparer (T)) | Busca en toda la Lista ordenada (T) un elemento utilizando el comparador especificado y devuelve el índice de base cero del elemento. |
BinarySearch (Int32, Int32, T, IComparer (T)) | Busca un rango de elementos en la Lista ordenada (T) para un elemento usando el comparador especificado y devuelve el índice de base cero del elemento. |
Claro | Elimina todos los elementos de la Lista (T). |
Contiene | Determina si un elemento está en la Lista (T). |
ConvertAll (TOutput) | Convierte los elementos de la Lista actual (T) a otro tipo y devuelve una lista que contiene los elementos convertidos. |
Copiar a (T []) | Copia toda la Lista (T) en una matriz unidimensional compatible, comenzando por el principio de la matriz de destino. |
Copiar a (T [], Int32) | Copia toda la Lista (T) en una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino. |
Copiar a (Int32, T [], Int32, Int32) | Copia un rango de elementos de la Lista (T) a una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino. |
Es igual a (objeto) | Determina si el objeto especificado es igual al objeto actual. (Heredado de Object). |
Existe | Determina si la Lista (T) contiene elementos que coinciden con las condiciones definidas por el predicado especificado. |
Finalizar | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de basura (heredado del objeto). |
Encontrar | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve la primera aparición dentro de toda la Lista (T). |
Encuentra todos | Recupera todos los elementos que coinciden con las condiciones definidas por el predicado especificado. |
FindIndex (predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición dentro de toda la Lista (T). |
FindIndex (Int32, predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición dentro del rango de elementos de la Lista (T) que se extiende desde el índice especificado hasta el último elemento. |
FindIndex (Int32, Int32, predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición dentro del rango de elementos en la Lista (T) que comienza en el índice especificado y contiene el número especificado de elementos. |
FindLast | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve la última aparición dentro de toda la Lista (T). |
FindLastIndex (predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la última aparición dentro de toda la Lista (T). |
FindLastIndex (Int32, predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la última aparición dentro del rango de elementos de la Lista (T) que se extiende desde el primer elemento hasta el índice especificado. |
FindLastIndex (Int32, Int32, predicado (T)) | Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la última aparición dentro del rango de elementos de la Lista (T) que contiene el número especificado de elementos y termina en el índice especificado. |
Para cada | Realiza la acción especificada en cada elemento de la Lista (T). |
GetEnumerator | Devuelve un enumerador que recorre en iteración la Lista (T). |
GetHashCode | Sirve como la función hash predeterminada. (Heredado de Object). |
GetRange | Crea una copia superficial de un rango de elementos en la lista de origen (T). |
GetType | Obtiene el tipo de la instancia actual. (Heredado de Object). |
Índice de (T) | Busca el objeto especificado y devuelve el índice de base cero de la primera aparición dentro de toda la Lista (T). |
IndexOf (T, Int32) | Busca el objeto especificado y devuelve el índice de base cero de la primera aparición dentro del rango de elementos de la Lista (T) que se extiende desde el índice especificado hasta el último elemento. |
IndexOf (T, Int32, Int32) | Busca el objeto especificado y devuelve el índice de base cero de la primera aparición dentro del rango de elementos en la Lista (T) que comienza en el índice especificado y contiene el número especificado de elementos. |
Insertar | Inserta un elemento en la Lista (T) en el índice especificado. |
InsertRange | Inserta los elementos de una colección en la Lista (T) en el índice especificado. |
LastIndexOf (T) | Busca el objeto especificado y devuelve el índice de base cero de la última aparición dentro de toda la Lista (T). |
LastIndexOf (T, Int32) | Busca el objeto especificado y devuelve el índice de base cero de la última aparición dentro del rango de elementos de la Lista (T) que se extiende desde el primer elemento hasta el índice especificado. |
LastIndexOf (T, Int32, Int32) | Busca el objeto especificado y devuelve el índice de base cero de la última aparición dentro del rango de elementos en la Lista (T) que contiene el número especificado de elementos y termina en el índice especificado. |
MemberwiseClone | Crea una copia superficial del objeto actual. (Heredado de Object). |
Eliminar | Elimina la primera aparición de un objeto específico de la Lista (T). |
Eliminar todo | Elimina todos los elementos que coinciden con las condiciones definidas por el predicado especificado. |
RemoveAt | Elimina el elemento en el índice especificado de la Lista (T). |
RemoveRange | Elimina un rango de elementos de la Lista (T). |
Contrarrestar() | Invierte el orden de los elementos en toda la Lista (T). |
Inversa (Int32, Int32) | Invierte el orden de los elementos en el rango especificado. |
Ordenar() | Ordena los elementos de toda la Lista (T) utilizando el comparador predeterminado. |
Ordenar (Comparación (T)) | Ordena los elementos en toda la Lista (T) usando el Sistema especificado. Comparación (T). |
Ordenar (IComparer (T)) | Ordena los elementos de toda la Lista (T) utilizando el comparador especificado. |
Ordenar (Int32, Int32, IComparer (T)) | Ordena los elementos en un rango de elementos en List (T) usando el comparador especificado. |
ToArray | Copia los elementos de la Lista (T) en una nueva matriz. |
Encadenar | Devuelve una cadena que representa el objeto actual. (Heredado de Object). |
TrimExcess | Establece la capacidad en el número real de elementos en la Lista (T), si ese número es menor que un valor de umbral. |
TrueForAll | Determina si cada elemento de la Lista (T) coincide con las condiciones definidas por el predicado especificado. |
Ejemplo
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")
printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)
printfn("after removing from index 3")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
Cuando compila y ejecuta el programa, produce el siguiente resultado:
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia