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

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

如果你的意思是命令行看起来像这样:c:> YourProgram.exe / switch1:value1 / switch2:value2 …

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

private static void Main(string[] args) { Regex cmdRegEx = new Regex(@"/(?.+?):(?.+)"); Dictionary cmdArgs = new Dictionary(); foreach (string s in args) { Match m = cmdRegEx.Match(s); if (m.Success) { cmdArgs.Add(m.Groups[1].Value, m.Groups[2].Value); } } } 

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

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

 using System; public class Class1 { public static void Main(string[] args) { Dictionary values = new Dictionary(); // 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

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

这不能改变。 请参阅MSDN 。

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

一个这样的库是.NET CLI ,来自MONO的人,以及许多 其他人 。