2010-03-06 4 views
1

J'ai un Portable Bridge Notationformatted-file avec lequel je dois travailler. J'ai déjà quelques exemples simples qui fonctionnent en utilisant l'indexation et les sous-chaînes pour extraire ce dont j'ai besoin et je suppose que pour cette activité PBN, cela me conviendrait bien car il n'est pas utilisé trop souvent. Si j'exécute ce code tout le temps (en pensant travailler avec des vCards), je m'inquiète de l'utilisation de la mémoire sous une charge de travail élevée en raison de la grande quantité de variables de chaînes temporaires créées à partir de toutes les sous-chaînes.Meilleure option pour extraire des données de chaîne?

Je connais deux autres options. Regex et StringReader/TextReader et je voulais une opinion générale sur ce qu'il faut utiliser.

L'utilisation prévue est d'extraire des objets et de les sérialiser en json afin que je puisse plus facilement travailler avec ou conserver cette information. Enfer si c'est assez rapide je pourrais même le faire à la volée.

Alors frappez-moi, que choisiriez-vous?

Répondre

0

Personnellement, je lirais le fichier ligne par ligne et le stockerais dans une représentation interne, puis l'interrogerais avec LINQ. L'avantage de stocker dans une représentation interne est que vous venez de lire le fichier de haut en bas, ce qui est très simple. Et quand vous avez besoin d'interroger, vous avez de puissantes requêtes linq, qui facilitent grandement la vie.

+0

Maintenant nous allons quelque part. Je vais l'essayer. – mhenrixon

+0

Cela ne résout pas vraiment quelque chose mais je dois admettre que cela rend l'interrogation un peu plus évidente si quelqu'un d'autre doit travailler sur le code. Je n'ai pas vraiment besoin de la même quantité de documentation à ce sujet. – mhenrixon

+0

.NET 4.0 .ReadLines renvoie un IEnumerable de lignes la clause where est en effet particulièrement combinée avec StartsWith, EndsWith, Contient etc. – mhenrixon

Questions connexes