键值对作为控制台应用程序中的参数

时间:2011-05-10 19:34:21

标签: c# command-line parameters console-application

是否有一种简单的方法可以将键/值对(两个字符串)集合作为控制台应用程序的命令行参数?

3 个答案:

答案 0 :(得分:9)

如果您的意思是让命令行看起来像这样: C:GT; YourProgram.exe / switch1:value1 / switch2:value2 ...

这可以在启动时轻松解析,看起来像这样:

private static void Main(string[] args)
{
   Regex cmdRegEx = new Regex(@"/(?<name>.+?):(?<val>.+)");

   Dictionary<string, string> cmdArgs = new Dictionary<string, string>();
   foreach (string s in args)
   {
      Match m = cmdRegEx.Match(s);
      if (m.Success)
      {
         cmdArgs.Add(m.Groups[1].Value, m.Groups[2].Value);
      }
   }
}

然后,您可以在cmdArgs字典中进行查找。不确定这是不是你想要的。

答案 1 :(得分:5)

没有好的方法可以从命令行精确传递键/值对。唯一可用的是一个字符串数组,您可以循环并提取为键/值对。

using System;

public class Class1
{
   public static void Main(string[] args)
   {
      Dictionary<string, string> values = new Dictionary<string, string>();

      // hopefully you have even number args count.
      for(int i=0; i < args.Length; i+=2){
      {
           values.Add(args[i], args[i+1]);
      }

   }
}

然后致电

  

Class1.exe key1 value1 key2 value2

答案 2 :(得分:3)

应用程序的入口点是main方法,可以使用string[]个参数(这些是命令行参数)。

这不能改变。请参阅MSDN

为了更轻松地使用它,可以使用许多命令行帮助程序库。

一个这样的图书馆是.NET CLI,来自MONO人员,many others