2010-06-27 12 views
5

en mi aplicación C# i necesidad de almacenar grandes cantidades de cadenas constantes en las matrices, como una matriz para las primeras nombres y uno de apellido y así sucesivamente ...manera mas potente para almacenar grandes cantidades de cadenas estáticas

Estas cadenas nunca cambian, así que mi pregunta es ¿cómo almacenarlas?

¿Cree una clase constante estática con estas matrices?

¿Cargarlos en tiempo de ejecución desde algún lugar?

o cualquier otra solución ...

PS: Yo realmente no quiero archivos externos de modo que si i cargarlos desde algún lugar tienen que ser incluidos en el .exe

EDIT: // Así que solo hago los archivos de recursos con cadenas [] arrays, alrigt :)

+0

El archivo de recursos no puede contener una matriz solo en el registro, puede almacenar elementos por registro. y luego cargue desde este archivo de recursos y cree su matriz sobre la marcha. –

+0

pero ¿no sería eso ineficaz? – Chilln

+0

será menos rendimiento pero algo muy pequeño, pero hará que su código se vea mejor y más fácil de editar este último. –

Respuesta

5

En casos como este, uso los archivos de recursos.
Creo un archivo de recursos llamado Constantes, por ejemplo, y luego puedo llamarlo desde cualquier lugar de mi aplicación.

http://www.sliver.com/dotnet/articles/resinweb.aspx

También en el pasado lo hice dos veces para crear una clase que contiene todas las variables como 'const'.

public const string myVariable = "some static text"; 

pero sentí que es el lugar equivocado para hacer eso y comenzó a utilizar archivos de recursos.

Actualización: La pregunta es que las cadenas fijas están en string [] array, que es un caso que no recordaba haber conocido, por lo que no sé qué camino será mejor para usted en este caso con respecto al rendimiento y la mantenibilidad del código.

+4

+1. Además, con VS2003 +, puede agregar archivos de texto a su proyecto y arrastrarlos a un recurso en el proyecto. La clase de recurso contendrá una constante 'String' con el contenido del archivo de texto, pero el archivo de texto es infinitamente más fácil de administrar y actualizar que tratar de mantener una celda de cuadrícula en el editor de recursos. Con este método, puede generar fácilmente su archivo de contenido como CSV, luego al iniciar la aplicación, tener un proceso que carga el contenido y lo analiza en una matriz estática para usar en el código. – Toby

1

Haz una clase dedicada en la que coloques las cadenas como campos de solo lectura. Cuando se lo solicite por primera vez, puede colocarlo en el objeto Caché para que luego pueda obtenerlos a partir de allí y recuperarlos rápidamente.

Grz, Kris.

+1

No es una mala idea en general. Sin embargo, la mejor manera es usar los recursos, si puedes. – TcKs

Cuestiones relacionadas