2009-06-16 11 views
0

J'ai un des arguments de ligne de commande comme cela, je dois obtenir les deux comme comme celui-ci comment est-il possiblearguments de ligne de commande

ApplicationId = 1; Nom = 2

J'aime obtenir les deux valeurs 1,2 en un seul tableau comment faire cela.

+0

Vous pourriez sans doute nous aider en clarifiant la question ... ce n'est pas 100% clair que les args ressemblent ou ce que vous voulez faire –

Répondre

1

Essayez

string values = "ApplicationId =1; Name =2"; 
string[] pairs = values.Split(';'); 

string value1 = pairs[0].Split('=')[1]; 
string value2 = pairs[1].Split('=')[1]; 

Vous aurez besoin de mieux vérification d'erreur bien sûr, mais valeur1 et valeur2 devrait être « 1 » et « 2 » respectivement

2

Il y a quelques bonnes bibliothèques mentionnées sur 631410 et 491595. J'ai personnellement utilisé le WPF TestAPI Bibliothèque mentionnée par sixlettervariables et il est en effet sacrément bon

6

Il est pas tout à fait clair pour moi, mais je vais supposer que les arguments sont en réalité:

ApplicationId=1 Name=2 

l'espacement etc est importante en raison de la façon dont le système divise les arguments. Dans une méthode Main(string[] args), ce sera une longueur du tableau 2. Vous pouvez traiter cela, par exemple dans un dictionnaire:

static void Main(string[] args) { 
     Dictionary<string, string> options = new Dictionary<string, string>(); 
     foreach (string arg in args) 
     { 
      string[] pieces = arg.Split('='); 
      options[pieces[0]] = pieces.Length > 1 ? pieces[1] : ""; 
     } 

     Console.WriteLine(options["Name"]); // access by key 

     // get just the values 
     string[] vals = new string[options.Count]; 
     options.Values.CopyTo(vals, 0); 
    } 
+0

Oui, c'est à peu près ce que je fais pour les utilitaires qui nécessitent des arguments nommés. –

Questions connexes