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