6
votes

manière la plus élégante d'éliminer l'élément de cordes

Je vais chercher la chaîne de fichier de sortie qui sera toujours soit ok ou err . Après cela, je pose ce résultat OK ou ERR à la propriété Enum, qui est OK, tout fonctionne, mais je suis sûr qu'il doit y avoir un meilleur moyen que le mien .

puisque je récupère 3 caractères au cas où ok est extrait, je dois supprimer le troisième élément de OK ; résultat. xxx

merci


2 commentaires

Si vous attendez de la position précise 411 pour la chaîne, vous pouvez vérifier uniquement pour ok : fichier.readalltext (@ "c: \ temp \ somereport.txt"). Soustring (411, 2 ); . Si le message est autre chose, mais OK , alors c'est probablement une erreur. Logique?


J'attends un résultat OK ou ERR. C'est quand j'utilise la sous-chaîne (411, 3);


4 Réponses :


3
votes

Vous pouvez simplement utiliser string.trim () code> pour supprimer le ';' Si c'est là.

"Err" = "Err"
"Ok;" = "Ok"


0 commentaires

1
votes

Vous pouvez simplement faire cela:

EnumName result;
if (Enum.TryParse(message.TrimEnd(';'), out result))
  SomePropery = result;
else
  throw new Exception("Unexpected file contents: " + message);


0 commentaires

0
votes

Si vous avez l'ENum suivant

int i = (int)state;
MessageBox.Show(i.ToString());  //should show 1 or 0


0 commentaires

1
votes
     Enum message = Enum.Err;
     if (Regex.Match(File.ReadAllText(@"C:\Temp\SomeReport.txt"), "(ok.+?){3}", RegexOptions.Singleline).Success)
     {
        message = Enum.OK;
     }

0 commentaires