2014-11-06 97 views
0

基本上我想指定一些不同的参数,最好有一个字典填充。沿着线的东西:是否有支持解析java像系统参数(-Dproperty = value)的命令行参数解析库?

c:\> MyApp.exe -Dproperty1=value1 -Dproperty2=value2 

将转化为类似:

Dictionary<string,string>() { { "property1", "value1" }, { "property2", "value2" } } 

我已经看过了一些解决方案,其中没有一个似乎支持这种类型的语法。在我创建自己的或修改别人的之前,我会问。

回答

0

你需要编写自己的解析算法。不管怎么说,这是不是很难使用Linq,例如:

args.Skip(1) // skip the program name 
.Select(x => { 
       var parts = x.Split('='); 
       return new KeyValuePair<string,string>(
          parts[0].Replace("-D",""), 
          parts[1]); 
      }).ToDictionary(x => x.Key,x => x.Value); 
+0

雅,这将很好地工作,如果这些人的说法,我需要提供的唯一类型。该应用程序将有其他,虽然,文件名,日志文件名,不管。我希望有一个解决方案可以让我创建几个属性类,让别的东西处理解析,验证和帮助生成。 – travis 2014-11-06 09:35:38

+0

@travis你可以在Select之前添加'.Where(x => x.StartsWith(“ - D”))''。那只会给你以-D开头的参数 – 2014-11-06 09:37:03