ExpandedLists 0.2.2.1
dotnet add package ExpandedLists --version 0.2.2.1
NuGet\Install-Package ExpandedLists -Version 0.2.2.1
<PackageReference Include="ExpandedLists" Version="0.2.2.1" />
paket add ExpandedLists --version 0.2.2.1
#r "nuget: ExpandedLists, 0.2.2.1"
// Install ExpandedLists as a Cake Addin #addin nuget:?package=ExpandedLists&version=0.2.2.1 // Install ExpandedLists as a Cake Tool #tool nuget:?package=ExpandedLists&version=0.2.2.1
Español
Expanded Lists
Expanded Lists, antes ListaBloques Remake es una biblioteca de estructuras de datos, por ahora solo listas, en C# que ofrecen más métodos que las implementaciones del lenguaje. Intento que mantengan un buen rendimineto, pero aún no he hecho pruebas de redimiento. Ha sido traducida a inglés para que sea más accesible porque dudo mucho que nadie vaya a usarla en español.
Estado de desarrollo
Lanzamiento 0.1
La parte más importante de esta versión, y uno de los motivos para crear este repositorio, es ListBloques. Una lista que usa arrays y Bloques<sup>*</sup> para ofrecer los beneficios de un array y una lista enlazada.<br/> Usa Lists para guardar los bloques y las posiciones que representan en la lista para agilizar el acceso a los elementos respecto a las listas enlazadas y usa los bloques para que la lista esté contenida en trozos de memoria separados como las listas enlazadas. Se le puede proporcionar una función para obtener longitudes para bloques nuevos y gestionar así la memoria usada, longitudes distintas darán rendimientos distintos.
- <sup>*</sup>Los Bloques son listas de capacidad fija usadas en la implementación de las listas de bloques
- Pueden usarse sin listas, pero no están pensadas para ello
- Por ahora la única implementación de Bloque es ArrayBloque
- Puede ser usado como una expansión de un array, que incluye una conversión implicita de esta
Tiene una jerarquía de interfaces, permitiendo la creación de listas con métodos y propiedades distintos.
Además incluye ListSerie, usa un List para implementar la interfaz ISerie, que permite usar funciones para generar nuevos elementos e insertarlos.
- ListSerie, no ha sido completamente depurada y puede contener errores, pero será usada en el repositorio DivClac
Lanzamiento 0.2
En esta versión el proyecto ha sido traducido al inglés, lo he traducio yo, por lo que puede haber errores. He aprovechado para cambiar clases y métodos mal nombrados, como ISerie, que representa una sucesión en lugar de una serie y, por lo tanto, ahora se llama ISequence.
Objetivos para versiones futuras
- Asegurar la eficiencia de ListBloques
- Refinar la jerarquía de interfaces
- Implementar otra lista, parecida a ListBloques, pero permitiendo que haya huecos en los bloques y que permita que haya bloques vacíos
- Estas diferencias permitirán usar esta estructura como una matriz, quizás usar un array de Bloques como una matriz sea más obvio que como una lista
- Esto puede requerir cambios en la jerarquía de interfaces
- Hacer algo con las listas ordenadas
English
Expanded Lists
Expanded Lists, previously ListaBloques Remake is a C# data structures library, currently only containing lists. These lists offer more methods than the implementations of System.Collections. While I try to ensure efficiency, I still have not performed performance tests. This library was previosuly in Spanish.
Development notes
Release 0.2
Mostly the same as 0.1, ignoring the translation almost of the entire library.
The most important feature from 0.1, and the reason I considered publishing this library, is BlockList. A list that uses Blocks<sup>*</sup> to offer the benefits from both array lists and linked lists.<br/> Uses Lists to store blocks and the positions of their first elements for faster random access than linked lists and uses block for better memory management than regular array lists. Can be given a function to get lengths for new blocks, this can be used to manage memory usage, different block lengths will have different performances.
- <sup>*</sup>Blocks are fixed-capacity lists used by block lists
- Blocks may be used by themselves but are not designed with this use in mind
- Currently the only block is ArrayBlock
- Can be used as an extension of an array, featuring an implicit conversion to ArrayBlock
Features an interface hierarchy, allowing for the creation of lists with different methods and properties.
Also includes ListSequence, which delegates its methods to a List. Can be given a name , this makes its ToString() return a string with the index for each element.
- This class has not been properly tested and was created for use in DivClac.
Plans for future releases
- Ensure BlockList has good performance
- Refine the interfaces
- Create a new block list, which can allow empty slots and empty blocks
- This list would be designed to be used as a matrix, which, perhaps, is more intuitive than a list like BlockList
- May require changing the interface hierarchy
- Do something with sorted lists
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See GitHub, Spanish and English.
0.2 merges the two previous packages, leaving the blocks part deprecated.
0.2.2 merges the two packages since 0.2 merged the packages, which completely broke functionality for the non-block half