2016-06-30 10 views
2

Ich lerne gerade C#, ich habe eine Konsolenanwendung gemacht, die Befehlszeilenargumente akzeptiert, aber ich brauche ein Argument, das mehr als einen Wert akzeptiert und sie in ein String-Array legt.C# Mehrere Werte für einzelnes Argument

Hier ist, was ich bisher habe, falls es nicht offensichtlich ist, sollte das Argument -Farben in der Lage sein, mehrere Werte zu akzeptieren und sie in ihr eigenes Array zu setzen.

for (int i = 0; i < args.Length; i++) 
{ 
    switch (args[i]) 
    { 
     case "-dob": 
      birth = args[i + 1]; 
      birthDay = Convert.ToDateTime(birth); 
      break; 

     case "-name": 
      name = args[i + 1]; 
      break; 

     case "-colors": 
    } 
} 
+3

Zeigen Sie ein Beispiel, wie Sie diese Parameter an Ihre übergeben möchten Programm über eine Befehlszeile – Steve

+1

Erweitern @ Steve Frage - es ist in der Regel am einfachsten, ein Trennzeichen zu verwenden und nur auf, z. "Rot | Grün | Gelb". –

Antwort

0

können Sie mehrere Werte als Farbgeben und sie fügen internaly zu einer Liste

List<string> colors = new List<String>(); 
for (int i = 0; i < args.Length; i++) 
{ 
    switch (args[i]) 
    { 
     case "-color": 
      colors.Add(args[i + 1]); 
     break; 

    } 
} 

und Sie werden es als

MyProgram verwenden .exe -color red -color blue

1

Sie können die Werte mit einem bestimmten Zeichen trennen und dann durch das Zeichen teilen. Zum Beispiel red.black.white und dann

var array= args[i + 1].Split('.')