2010-06-27 6 views
5

dans mon application C# i besoin de stocker d'énormes quantités de chaînes constantes dans des tableaux, comme un tableau pour les prénoms et un pour nom et ainsi de suite ...le plus performant moyen de stocker de grandes quantités de chaînes statiques

Ces cordes ne changent jamais alors ma question est comment les stocker?

Créer une classe de constantes statiques avec ces tableaux?

Les charger à l'exécution de quelque part?

ou toute autre solution ...

PS: Je ne veux pas vraiment des fichiers externes, donc si je les charger de quelque part, ils doivent être inclus dans le

.exe

EDIT: // Donc, je fais juste des fichiers de ressources avec des chaînes de caractères [], alrigt :)

+0

Le fichier de ressources ne peut pas contenir un tableau uniquement en enregistrement, vous pouvez stocker un élément par enregistrement. puis chargez à partir de ce fichier de ressources et créez votre tableau à la volée. –

+0

mais cela ne serait-il pas inefficace? – Chilln

+0

ce sera moins de performance mais quelque chose de très petit, mais qui rendra votre code meilleur et facile à éditer. –

Répondre

5

Dans ce cas, j'utilise des fichiers de ressources.
Je crée un fichier de ressources appelé Constantes par exemple, puis je peux l'appeler n'importe où dans mon application.

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

également dans le passé je l'ai fait deux fois pour créer une classe qui contient toutes les variables comme « const ».

public const string myVariable = "some static text"; 

mais je me suis senti que c'est le mauvais endroit pour le faire et j'ai commencé à utiliser des fichiers de ressources. La question dit que les chaînes fixes sont en string [] array, ce qui est un cas dont je ne me souviens pas que j'ai rencontré, donc je ne sais pas quel sera le meilleur moyen pour vous dans ce cas en ce qui concerne la performance et la maintenabilité du code.

+4

+1. En outre, avec VS2003 +, vous pouvez ajouter des fichiers texte à votre projet et les faire glisser dans une ressource du projet. La classe de ressources contiendra alors une constante 'String' avec le contenu du fichier texte, mais le fichier texte est infiniment plus facile à gérer et à mettre à jour que d'essayer de maintenir une cellule dans l'éditeur de ressources. Avec cette méthode, vous pouvez facilement générer votre fichier de contenu au format CSV, puis au démarrage de l'application, avoir un processus qui charge le contenu et l'analyse en un tableau statique à utiliser dans le code. – Toby

1

Créez une classe dédiée dans laquelle vous placez les chaînes en tant que zones en lecture seule. Lors de la première demande, vous pouvez le placer dans l'objet Cache, vous pourrez ensuite les récupérer pour une récupération rapide.

Grz, Kris.

+1

Ce n'est pas une mauvaise idée en général. Cependant, la meilleure façon est d'utiliser les ressources, si vous le pouvez. – TcKs

Questions connexes