Je suis en train de faire des changements à un peu de notre application qui analyse un fichier csv. Nous avons un objet template qui possède un ensemble de champs privés représentant les colonnes csv et les getters et setters pour chacun. Cet objet n'est défini que lors de l'analyse du fichier csv.For Loop - Interrupteur refactoring dans le code d'analyse csv
Le code d'analyse lit chaque ligne du fichier csv dans un tableau de chaînes et divise le tableau en fonction de ','. Ensuite, il analyse chaque colonne en utilisant une boucle - structure de commutateur:
for (int j = 0; j < sParsedInput.Length; j++)
{
sWork = sParsedInput[j];
switch (j)
{
case 0:
Template.column1 = sWork;
break;
case 1:
dteTmpDate = Convert.ToDateTime(sWork);
sWork = dteTmpDate.ToString("MM/dd/yyyy");
Template.column2 = Convert.ToDateTime(sWork);
}
}
Il y a environ 10 colonnes, donc ce qui se passe un peu. Considérant que je devrai changer cette fonction depuis que le fichier d'entrée a été changé de façon spectaculaire, y a-t-il un moyen d'éviter la longue déclaration de commutateur? Je pensais à déplacer le code d'analyse vers les propriétés du modèle et à compter sur le setter pour faire la conversation de string à dateTime etc. Je ne suis pas sûr que ce soit une bonne solution car cela pourrait être déroutant si quelqu'un d'autre décide d'utiliser l'objet modèle à d'autres fins.
Merci
Aucune idée de la façon dont le DateTime est traité de cette façon non plus, la variable de date temporaire n'est utilisée nulle part. Il y a d'autres cas de commutation qui font un peu plus de travail, donc je vais créer des fonctions pour eux. Merci! – Iris