A menudo me encuentro en una situación en la que necesito realizar una operación en un conjunto de propiedades. La operación puede ser cualquier cosa, desde verificar si una propiedad en particular coincide con algo en el conjunto hasta una única iteración de acciones. A veces, el conjunto se genera dinámicamente cuando se llama a la función, algunos se crean con una simple declaración LINQ, otras veces es un conjunto codificado que siempre permanecerá igual. Pero siempre existe una constante: , el conjunto solo existe para una sola operación y no tiene uso antes o después de él.¿Qué contenedor de C# es más eficiente en cuanto a los recursos para una sola operación?
Mi problema es que tengo tantos puntos en mi aplicación donde esto es necesario, pero parece que soy muy, muy inconsistente en la forma de almacenar estos conjuntos. Algunos de ellos son matrices, otros son listas, y justo ahora he encontrado un par de listas vinculadas. Ahora bien, ninguna de las operaciones que me preocupan específicamente debe tener en cuenta los índices, el tamaño del contenedor, el orden o cualquier otra funcionalidad otorgada por cualquiera de los tipos de contenedores individuales. Elegí la eficiencia de recursos porque es una mejor idea que lanzar monedas. Pensé que, dado que el tamaño de la matriz está configurado y es un contenedor muy elemental, esa podría ser mi mejor opción, pero creo que es una mejor idea para preguntar. Alternativamente, si hay una mejor opción no por falta de recursos, sino estrictamente como una mejor opción para este tipo de situación, también sería bueno.
Creo que no debe preocuparse demasiado por la eficiencia de los recursos a menos que los perfiles muestren que hay un problema. Sin embargo, desde la perspectiva de si existe una "verdadera forma" de tratar con esto, esta sigue siendo una pregunta válida. – Joey
No estoy particularmente preocupado por la eficiencia de los recursos, lo elegí como la métrica ya que realmente necesito un motivo más allá de la elección aleatoria. Sin embargo, podría reestructurar la pregunta para simplemente "La mejor opción en general". –
Como compañero programador pedante, entiendo totalmente sus preocupaciones, aunque, como dijo Rössel, probablemente no sea tan importante. Nunca lo perfilé, ya que el problema de rendimiento nunca se me ocurrió, pero personalmente utilizo una matriz para contenido estático y una lista si tengo que crear una lista a partir de otra cosa. – Coincoin